Problem mit Process Staus
-
Hallo zusammen,
hier ist mein Versuchcode.
Dim ExterneAnwendung As New System.Diagnostics.Process
ExterneAnwendung.StartInfo.FileName = sPath
ExterneAnwendung.StartInfo.Arguments = sArgsIf System.IO.File.Exists(sPath) Then
If Not ExterneAnwendung.HasExited Then
TextBox1.Text = " gestartet"
Else
ExterneAnwendung.Start()
End IfEnd If
ich versuche bevor eine Anwendung starte, prüfen ob sie läuft.
aber ich bekomme Absturzt auf die Stelle "ExterneAnwendung.HasExited".ist die Anwendung vorher schon gestartet, dann passiert keine Abstutz.
Kann jemand sagen was ich falsch mache?.Danke im Voraus
Gruß
S.Mathi
-
Deine Abfrage (HasExited) funktioniert nur dann, wenn es einen Verwies auf den Process gibt.
Du musst also erst den Process 'übernehmen' und kannst dann mit den Eigenschaften arbeiten.
Du kannst mit der folgenden statischen Methode herausbekommen, ob eine Instanz deines Process bereits läuft (C# code, in Basic sicher ähnlich):Process[] prcs = Process.GetProcessesByName(ProcessName);
WorstCase
-
Ich werde in der Richtung schauen.
Gruß
S.Mathi
-
Process[]
warum das?
warum ein array?
oder bin ich mit meinem gedankengang verkehrt?vor allem warum dann die runden klammern hier:
Process.GetProcessesByName(ProcessName)
kannst du mir das bitte näherbringen weil ich versteh das irgenwie nicht.
-
@hilf,
die Methode
GetProcessesByName(ProcessName)
gibt ein Array zurück, da es von einem Prozess mehrere laufende Instanzen geben kann.WorstCase