Prozess.Starten Sie in C# Das system kann nicht die angegebene Datei gefunden Fehler
Dies ist eine dumme und verzwickte Problem, dass ich mich vor.
Den code unten funktioniert gut (Sie startet den Taschenrechner):
ProcessStartInfo psStartInfo = new ProcessStartInfo();
psStartInfo.FileName = @"c:\windows\system32\calc.exe";
Process ps = Process.Start(psStartInfo);
Aber die unten eins für SoundRecorder funktioniert nicht. Es gibt mir "The system cannot find The file specified" - Fehler.
ProcessStartInfo psStartInfo = new ProcessStartInfo();
psStartInfo.FileName = @"c:\windows\system32\soundrecorder.exe";
Process ps = Process.Start(psStartInfo);
Ich bin in der Lage, starten Sie den Audiorekorder, indem Sie über Start -> Ausführen -> "c:\windows\system32\soundrecorder.exe" Befehl.
Irgendeine Idee was falsch läuft?
Bin ich mit C# in Visual Studio 2015 und Windows 7 OS.
UPDATE 1: ich habe versucht, ein File.Exists
prüfen, und es zeigt mir die MessageBox aus dem folgenden code:
if (File.Exists(@"c:\windows\system32\soundrecorder.exe"))
{
ProcessStartInfo psStartInfo = new ProcessStartInfo();
psStartInfo.FileName = @"c:\windows\system32\soundrecorder.exe";
Process ps = Process.Start(psStartInfo);
}
else
{
MessageBox.Show("File not found");
}
Für safetey, schreiben Sie den Pfad richtig.
sowohl die codes, die funktioniert gut für mich.
Du könntest einen
Mir ist 64-bit-Windows-7. @Rakitić sind Sie mit 64-bit-OS auch?
ja, mir ist 64-bit.
"C:\Windows\system32\soundrecorder.exe"
. Haben Sie gemacht, schauen Sie in den explorer, dass die Datei existiert? Was bedeutet File.Exists()
aus System.IO
sagen?sowohl die codes, die funktioniert gut für mich.
Du könntest einen
if(File.Exists(@"c:\windows\system32\soundrecorder.exe")
um sicherzustellen, dass die Datei vorhanden ist, bevor Sie versuchen, um den Prozess zu starten.Mir ist 64-bit-Windows-7. @Rakitić sind Sie mit 64-bit-OS auch?
ja, mir ist 64-bit.
InformationsquelleAutor kamleshrao | 2016-07-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Höchstwahrscheinlich deine app ist 32-bit und 64-bit-Windows-Verweise auf
C:\Windows\System32
bekommen transparent umgeleitetC:\Windows\SysWOW64
für 32-bit-apps.calc.exe
passiert, gibt es in beiden Orten, währendsoundrecorder.exe
existiert im wahrenSystem32
nur.Beim starten von
Start /Run
der parent-Prozess ist die 64-bit -explorer.exe
also keine Umleitung erfolgt, und die 64-bit -C:\Windows\System32\soundrecorder.exe
gefunden und gestartet.Vom File System Redirector:
[ BEARBEITEN ] Von der gleichen Seite:
Also Folgendes möchte arbeiten zu beginnen
soundrecorder.exe
von der (real)C:\Windows\System32
.die SYSNATIVE trick hat funktioniert! Danke für die Hilfe
Und hier ist die Microsoft-KB-Artikel, die Gespräche über SYSNATIVE Dokumentation. support.microsoft.com/en-us/kb/942589
Es verblüfft einen, dass es zu diesem Tag, der "Unterscheidung" zwischen 32-bit-Windows und 64-bit-Windows stellt ungeahnte technische Herausforderungen zu Microsoft. Die richtige Lösung ist unter trivial.
Ein weiterer fix scheint nur der Wechsel zu x64 in configuration manager
InformationsquelleAutor dxiv