2016-07-26 33 views
1

我有一個exe文件名爲TestTool的.net wpf應用程序。如何唯一標識進程

從一個單獨的應用程序,我想要得到這個過程。我曾使用進程名稱獲取 進程。下面的代碼snipet:

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

現在,我的擔心是,如果存在具有相同名稱的運行一些其他的EXE比我可能 來翻過一個場景,我得到錯誤的過程。

有沒有一種方法可以唯一標識我的TestTool過程?

感謝您的幫助

回答

0

嘗試使用LINQ來確定確定如果該進程是基於進程的exe文件位置運行,像這樣的例子:

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

你可能會檢查文件名:

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

或者你可以這樣做:

  • CRC校驗
  • 檢查文件的版本信息。
  • 您在相同的路徑一個額外的文件