Funktionreferenz


_Singleton



Beschreibung anzeigen in

Erzwingt ein Entwicklungsmodell bei dem nur eine Instanz des Skripts ausgeführt werden darf

#include <Misc.au3>
_Singleton ( $sOccurrenceName [, $iFlag = 0] )

Parameter

$sOccurrenceName frei wählbarer String um die Instanz des Skripts zu identifizieren. Dieser String darf \ nicht enthalten, außer man platziert ein Objekt in einem Namensraum (Siehe Bemerkungen).
$iFlag [optional] Optionen
0 - Beendet das Skript mit dem Exitcode -1 falls bereits eine Instanz existiert.
1 - Kehrt von der Funktion wieder zurück ohne das Skript zu beenden.
2 - Erlaubt jedem im System, auf das Objekt zuzugreifen. Dies ist nützlich, wenn ein "Global\" Objekt in einer Mehrbenutzerumgebung festgelegt wird.

Rückgabewert

Erfolg: Das Handle zu dem Objekt welches für die Synchronisation verwendet wurde. (ein Mutex)
Fehler: 0

Bemerkungen

Man kann das Objekt in einem Namensraum durch voranstellen von "Global\" oder "Local\" vor den Objektnamen platzieren. "Global\" Objekte kombiniert mit dem Flag 2 sind für eine Mehrbenutzerumgebung nützlich.

Beispiel

#include <Misc.au3>
#include <MsgBoxConstants.au3>

If _Singleton("Skript", 1) = 0 Then
    MsgBox($MB_SYSTEMMODAL, "Warnung", "Eine Instanz des Skripts wird bereits ausgeführt!")
    Exit
EndIf
MsgBox($MB_SYSTEMMODAL, "Alles i.O.", "Die erste Instanz des Skripts läuft.")