- .NET (4)
- Administration (9)
- Allgemein (5)
- C# (4)
- MOSS 2007 (29)
- Office (2)
- Programming (5)
- SharePoint (36)
- SharePoint 2010 (2)
- Uncategorized (1)
- VB.NET (2)
- Web (7)
- WIN 2008 (1)
- Workflow (8)
- 10.12.2009: CAML query nested too deep
- 28.11.2009: SharePoint 2010, Listen und Bibliotheken, was ist neu?
- 27.11.2009: SharePoint 2010 Beta, erste Eindrücke
- 6.10.2009: SharePoint Fehlermeldung bei Verwendung der Suche / Search error
- 25.9.2009: MOSS große Listeneintrag Anlage wird nicht hochgeladen / MOSS large list item attachment not uploading
- 20.9.2009: stp Vorlage ungültig... / stp template invalid...
- 26.5.2009: Erste Systemvoraussetzungen für SharePoint 2010 von Microsoft veröffentlicht
- 26.5.2009: Service Pack macht aus SharePoint Server 2007 eine Testversion
- 11.5.2009: STSADM command line parameters / STSAD Kommandozeilen Parameter
- 6.5.2009: Fehler beim MOSS Update / MOSS Update fails
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
}