Programm nur ausführen, wenn es nicht schon ausgeführt wird

Insbesondere bei der entwicklungen von Windows-Programmen, die im Hintergrund laufen sollen und eventuell keinerlei Benutzerdialog erfodern, ist es oft notwendig zu prüfen, ob ein bestimmter Prozess bereits läuft und in Abhängigkeit davon das Programm auszuführen, oder abzubrechen.

Anbei ein kleiner Code-Schnipsel mit dem geprüft werden kann, ob bereits eine Instanz des Programmes ausgeführt wird.

Das nachfolgende Beispiel (C#) zeigt, wie geprüft wird, ob eine Instanz des eigenen Programmes bereits ausgeführt wird und führt den weiteren code nur aus, wenn dies nicht der Fall ist: 

using System.Diagnostics;

Process ThisProcess = Process.GetCurrentProcess();
//assoziiert alle laufenden Applikationen mit der Objektvariablen ThisProcess vom Typ System.Diagnostics.Process


Process[] activeProcesses = Process.GetProcessesByName(ThisProcess.ProcessName);
//Legt in einem Array alle Prozesse ab, die dem abgefragten Kriterium (ThisProcess.ProcessName) entsprechen
//wenn also bereits eine Instanz dieses Programmes ausgeführt wird, so wird das Array activeProcesses
//mit mindestens einem WEITEREN Wert gefüllt, erhält also dann eine „Länge“ von 2 oder mehr,
//da DIESE Instanz (mit diesem Code) natürlich auch gerade jetzt ausgeführt wird.
//Nur ausführen, wenn noch nicht ausgeführt wirdif (activeProcesses.Length == 1) //Wenn das Array activeProcesses also nur eine Länge von 1 hat (keine Werte hinzugefügt)
{
     Codeabschnitt einfügen
}

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.