Process.Start () wird sofort unter Windows 7 beendet

9

Process.Start("d:/test.txt"); //simple .txt file funktioniert einwandfrei ab Windows 8, aber unter Windows 7 (x64) startet es den Prozess und schließt ihn sofort.

Ich habe bereits folgendes versucht:

  1. Aufruf über ProcessStartInfo und Einstellung von CreateNoWindow=true , UseShellExecute=true und Verb="runas" (obwohl ich nicht sicher bin, warum ich das einstellen musste).

  2. Versucht, Exit event anzuhängen und es bestätigt, dass der Prozess startet, aber es wird sofort beendet und ich sehe das Notepad-Fenster nicht einmal für einen Augenblick.

Bearbeiten: Ich habe es mit Bilddateien und einigen anderen Erweiterungen probiert und sie öffnen sich einfach perfekt. Etwas stimmt nur mit den .txt-Dateien (und / oder wahrscheinlich anderen Formaten) nicht.

    
jwdmsd 21.05.2017, 20:17
quelle

5 Antworten

0

Ich konnte diesen Fehler nur dadurch lösen, dass ich die Build-Plattform von AnyCPU zu x64 änderte (meine Zielmaschine ist x64). Das ist seltsam, aber es hat das Problem gelöst! Danke Simon Mourier für diesen Tipp.

    
jwdmsd 11.06.2017, 10:55
quelle
0

Es ist definitiv ein Problem mit der Dateizuordnung. Ich habe es Windows 7 versucht und es funktioniert gut. Versuchen Sie es mit einem Doppelklick auf die Datei und prüfen Sie, ob es im Editor geöffnet wird, wenn es nicht so konfiguriert ist, dass es über Notepad geöffnet wird. Außerdem sollten Sie die Ausnahme überprüfen, die es auslöst. Wenn die Dateizuordnung fehlt, wird der Openwith-Dialog geöffnet.

Wenn es mit einem falschen Programm verknüpft ist, können Sie es manuell ändern.

Wenn Sie den Assoziationstyp dann pragmatisch finden möchten, würde ich vorschlagen, diese Antwort zu betrachten.

Wie erhalte ich Dateitypinformationen ....

    
Code Name Jack 29.05.2017 11:49
quelle
0

Sie sagen, dass Ihr Code in anderen Betriebssystemen und anderen Dateiformaten auch in Win 7 funktioniert.

Lassen Sie uns die folgenden Überprüfungen durchführen, um zu überprüfen, ob die Dinge korrekt sind

  1. Überprüfen Sie, ob sich notepad.exe im Pfad befindet Start - & gt; Ausführen - & gt; notepad.exe sollte Editor starten
  2. Doppelklicken Sie auf eine .txt-Datei und prüfen Sie, ob sie automatisch in Notepad
  3. geöffnet wird
  4. Überprüfen Sie, ob Process.Start ("notepad.exe") eine Instanz von Editor
  5. startet
  6. var process = Prozess.Start ( file used in step 2 ); und überprüfen Sie die zurückgegebenen Prozessinformationen im Debug-Modus und sehen Sie, ob der neu erstellte Prozess noch läuft oder nicht.
Gururaj 29.05.2017 15:03
quelle
0

Ich hatte das schon früher bei Windows 7. Es ist wahrscheinlich, dass Ihre Path-Umgebungsvariable beschädigt wurde. Die maximale Anzahl der Zeichen, die in der Path-Variablen verwendet werden können, beträgt 2047. Wenn Sie viele ausführbare Dateien auf Ihrem Computer installieren, kann die Path-Variable überlaufen. Hier ist eine SO-Diskussion, die einige Ideen zum Umgehen zeigt:

Wie vermeidest du über -die PATH-Umgebungsvariable in Windows hinzufügen?

Wenn Sie Notepad nur schnell wieder ausführen müssen, können Sie die Umgebungsvariable Path ändern und den Systemspeicherort nur am Anfang der Variablen in Notepad setzen. (zB "c: \ windows \ system32 \ notepad.exe").

Und wenn Sie nicht sicher sind, wie Sie Ihre Pfadvariable ändern können, hier eine gute Anleitung: Ссылка

    
Dan 30.05.2017 13:21
quelle
0

Was ist nur mit

? %Vor%

oder

%Vor%

oder

%Vor%

Wenn es immer noch nicht funktioniert, versuchen Sie es mit der gerade beschriebenen Shell, wie hier beschrieben Ausführen eines anderen Programm von C #, muss ich die "Befehlszeile" aus der Registrierung selbst analysieren?

Ссылка

    
Trevor D 30.05.2017 18:09
quelle

Tags und Links