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.exe

    Jetzt 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.


Anmelden zum Antworten