C # Mit ProcessStartInfo und Process.Verlassen
-
21-12-2019 - |
Frage
Ich möchte verwenden ProcessStartInfo
zum Starten von Programmen aus meiner C # -Anwendung.Ich benutze ProcessStartInfo
statt normal Process
weil ich Programme minimieren möchte, also werde ich verwenden ProcessWindowStyle.Minimized
und vielleicht werde ich auch einige Argumente weitergeben.Ich möchte diese gestarteten Anwendungen auch danach überwachen, also möchte ich zum Beispiel verwenden Process.HasExited
eigentum (und auch PeakWorkingSet64
) aber ich kann nicht, da ich einen Fehler bekommen habe 'System.Diagnostics.ProcessStartInfo' does not contain a definition for 'HasExited'
.Gibt es eine Möglichkeit, Anwendungen mit zu starten ProcessStartInfo
und auch Eigenschaften verwenden, die mit Standard verfügbar sind Process
klasse?
Lösung
ProcessStartInfo
ist eine Klasse, die Einstellungen definiert, die Sie in eine Überladung von übergeben möchten Process.Start
.
Also würden Sie normalerweise so etwas tun:
var psi = new ProcessStartInfo { ... };
var process = Process.Start("C:\myProgram.exe", psi);
process.Exited += myProcessExitHandler;
Andere Tipps
ProcessStartInfo
ist nur eine Struktur, die beschreibt, wie ein Prozess gestartet wird.Sobald Sie es definiert haben, übergeben Sie es an Process.Start()
und bekomme eine Instanz von zurück Process
.In dieser Instanz können Sie anrufen .HasExited
.