Prozess anhand Dateipfad ermitteln.
-
Hi,
ich stecke gerade an einem Problem. Ich möchte einen ganz bestimmten Prozess beenden, der jedoch mehrfach vorhanden sein kann. Das einzigste was diese unterscheidet ist der Ort wo diese exe-Datei auffindbar war.
Beispiel:
Ich habe im Taskmanager 3 "Test.exe" am laufen."Test.exe" (1)
"Test.exe" (2)
"Test.exe" (3)Diese exe-Dateien sind aber alles verschiedene. Jede Exe-Datei kommt aus einem anderen Ordner:
(1): c:\test\test.exe
(2): d:\my_home\test\test2\test.exe
(3): g:\meine welt\test.exeJetzt möchte ich genau die Prozess-ID bekommen, die zu "d:\my_home\test\test2\test.exe" passt.
Ich habe mir dafür folgendes überlegt:
static bool is_running (string filename) { foreach (Process process in System.Diagnostics.Process.GetProcesses ()) { try { if (process.Modules[0].FileVersionInfo.FileName == filename) return (true); } catch { } } return (false); }
bool temp = is_running (@"d:\my_home\test\test2\test.exe");
Ich weiß jedoch nicht, ob das sonderlich gut gelöst ist und bin auch sehr offen für andere Ansätze die besser sind.
Danke euch vielmals im voraus!
-
*push*
keiner einen besseren vorschlag?
-
jo... mach die try+catch anweisungen weg^^
würdest so keine Exceptions erstellen.