2016-07-26 9 views
1

Ich habe eine .net WPF-Anwendung mit dem Namen TestTool.Wie man einen Prozess eindeutig identifiziert

Von einer separaten Anwendung möchte ich diesen Prozess bekommen. Ich habe den Prozess mit dem Prozessnamen abgerufen. Codestück unter:

var process = Process.GetProcessesByName("TestTool"); 

Nun, meine Sorge ist, wenn es eine andere exe ist mit dem gleichen Namen läuft, als ich accross ein Szenario kommen könnte, wo ich den falschen Prozess.

Gibt es eine Möglichkeit, dass ich meinen TestTool-Prozess eindeutig identifiziere?

Danke für Ihre Hilfe

Antwort

0

Versuchen Linq, um sicher zu bestimmen, zu verwenden, wenn der Prozess Prozess exe-Datei Standort, wie in diesem Beispiel basiert läuft:

var process = Process.GetProcessesByName("Dns_management"); 

bool pIsRunning = Process.GetProcessesByName("Dns_Management") 
       .FirstOrDefault(p => p.MainModule.FileName.StartsWith(@"F:\VS_2015_WorkSpace\Projects\DNS_Management\DNS_Management\bin\Debug")) 
       != default(Process); 

      if (pIsRunning == true) 
      { 
       foreach (Process p in process) 
       { 
        Console.WriteLine(p.ProcessName + " Is Running"); 
       } 
          } 
      else 
      { 
       Console.WriteLine("The process is not available"); 
      } 
1

Sie können den Dateinamen überprüfen:

Process.GetProcessesByName("TestTool").MainModule.FileName; 

Oder Sie tun können:

  • ein CRC
  • Überprüfen Sie die Versionsinformationen der Datei prüfen.
  • Scheck für eine zusätzliche Datei im selben Pfad