2013-08-02 85 views
8

我只是想檢查是否有任何需要的應用程序已經運行或不如何檢查是否應用程序運行

用於例如假設我有VLC或iTunes或任何Windows應用程序那我怎麼才能弄明白的C#代碼如果它正在運行或沒有運行。

回答

17

這應該是很容易找到一個快速谷歌搜索,但在這裏你去:

if (Process.GetProcessesByName("process_name").Length > 0) 
{ 
    // Is running 
} 

更換process_name與過程的您正在尋找(即vlc)的名稱。

+1

如果是自我處理,你應該指定大於1 – filimonic

+0

如果長度大於0或大於1,爲什麼要重要? –

+0

只是要刪除問題'我做錯了什麼,它說另一個實例正在運行'。當您使用名稱'proc.exe'開始進程時,您將獲得長度> = 1而不是0(進程將自行計數)。只是爲了使它更清潔 – filimonic

0

試試這個

public partial class App : System.Windows.Application 
    { 
     public bool IsProcessOpen(string name) 
     { 
      foreach (Process clsProcess in Process.GetProcesses()) 
      { 
       if (clsProcess.ProcessName.Contains(name)) 
       { 
        return true; 
       } 
      } 
      return false; 
     } 

     protected override void OnStartup(StartupEventArgs e) 
     { 
      // Get Reference to the current Process 
      Process thisProc = Process.GetCurrentProcess(); 
      if (IsProcessOpen("name of application.exe") == false) 
      { 
       //System.Windows.MessageBox.Show("Application not open!"); 
       //System.Windows.Application.Current.Shutdown(); 
      } 
      else 
      { 
       // Check how many total processes have the same name as the current one 
       if (Process.GetProcessesByName(thisProc.ProcessName).Length > 1) 
       { 
        // If ther is more than one, than it is already running. 
        System.Windows.MessageBox.Show("Application is already running."); 
        System.Windows.Application.Current.Shutdown(); 
        return; 
       } 
      base.OnStartup(e); 
     } 
} 

您可以參考,Checking if my Windows application is running

+2

這只是一個裂口:http://stackoverflow.com/questions/4722198/checking-if-windows-application-is-running –

+2

從http://stackoverflow.com/questions/4722198複製/檢查,如果Windows應用程序正在運行......不是一件好事 –

1

您可以使用Process.GetProcessesByName,如果你知道進程的名稱或Process.GetProcessesByID,如果你知道它的ID。

相關問題