Prozessname zu einer .exe-Datei herausfinden

Hallo liebe Community,

ich schreibe gerade an einem Dienst, der ständig überprüft, ob ein bestimmtes Programm, dessen ausführbare Datei der User selbst wählen kann, gerade ausgeführt wird, oder nicht.
Mithilfe einer dll, die das Programm dann noch implementieren muss, sollen auch noch weitere Programminformationen (z. B. eine Art Ping als Reaktionstest) abgefragt werden können.

Allerdings habe ich jetzt folgendes Problem:

Der Nutzer sucht sich also über ein OpenFileDialog ein ausführbares Programm aus, aber wie bekomme ich dazu jetzt den Prozessnamen?
(Für die einfache Abfrage, ob das Programm läuft, oder nicht - schließlich kann nicht jedes Programm meine dll implementieren)

Das Programm soll unter Windows-Server 2008 lauffähig sein.

Bin für jede Hilfe dankbar.

Mit freundlichen Grüßen,
Bluesky787

Hallo!

IIRC ist der Prozessname der Name des Executables ohne Extension.
Da dieser Name aber nicht eindeutig ist, könntest Du anders herum vorgehen:
Iteriere durch die Prozesse und schau Dir’ für jeden Prozess den Wert von proc.MainModule.FileName an - das wäre der Pfad zum Executables.
Dann hast Du die gesamte Information und nicht nur den Programmnamen.

Ein kleines Caveat noch: Process.GetProcesses() liefert Dir alle Prozesse auf dem Rechner, nicht nur in der aktuellen Sitzung. Je nachdem, was Du realisieren möchtest, musst Du ggf. noch die SessionId des jeweiligen Prozesses berücksichtigen.

Gruß,
Martin

Dankeschön,

genau das wollte ich wissen.

Mit freundlichen Grüßen,
Bluesky787