2013-08-02 25 views
8

I ist nur überprüfen wollen, ob jede gewünschte Anwendung bereits oder nicht für zB nehme ich VLC oder iTunes oder jeder Windows-AnwendungWie zu überprüfen, ob Anwendung läuft

läuft dann wie kann ich es heraus von C# -Code aus wenn es läuft oder nicht.

Antwort

17

mit einer schnellen Google-Suche zu finden, Dies sollte ziemlich einfach sein, aber hier geht:

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

process_name Ersetzen mit dem Namen des Prozesses, die Sie suchen (das heißt vlc).

+1

Sie sollten> 1 angeben, wenn es sich um einen Selbstprozess handelt. – filimonic

+0

Warum würde es eine Rolle spielen, ob die Länge '> 0' oder '> 1' ist? –

+0

Nur um die Frage zu entfernen "Was mache ich falsch, es heißt eine andere Instanz läuft". Wenn Sie den Prozess mit dem Namen 'proc.exe' starten, erhalten Sie Länge> = 1, nicht 0 (Prozess zählt sich selbst). Nur um es sauberer zu machen – filimonic

0

Versuchen Sie, diese

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); 
     } 
} 

Sie Checking if my Windows application is running

+2

Dies ist nur eine Kopie von: http://stackoverflow.com/questions/4722198/checking-if-windows-application-is-running –

+2

kopiert von http://stackoverflow.com/questions/4722198/Überprüfen, ob-Windows-Anwendung läuft ... keine gute Sache –

1

Sie entweder Process.GetProcessesByName verwenden können refere können, wenn Sie den Prozessnamen oder Process.GetProcessesByID wissen, ob Sie es ID kennen.

Verwandte Themen