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:
Aufruf über ProcessStartInfo
und Einstellung von CreateNoWindow=true
, UseShellExecute=true
und Verb="runas"
(obwohl ich nicht sicher bin, warum ich das einstellen musste).
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.
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.
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.
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
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. 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: Ссылка
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?
Tags und Links c# windows-7 process.start