Registriert eine Funktion oder ein Funktionsobjekt, die bzw. das jedes Mal ausgeführt wird, wenn sich der Inhalt der Zwischenablage ändert.
OnClipboardChange(Func , HinzufügenEntfernen)
Ein Funktionsname oder Funktionsobjekt, die aufgerufen werden sollen. Die Parameter und der Rückgabewert der Funktion sind unten beschrieben.
Wenn dieser Parameter weggelassen wird oder leer ist, wird standardmäßig 1 (die Funktion nach anderen zuvor registrierten Funktionen aufrufen) verwendet. Ansonsten können Sie eine der folgenden Zahlen angeben:
Existiert ein OnClipboardChange-Label, wird das immer zuerst aufgerufen.
FunktionName(Typ)
Enthält eine der folgenden Zahlen:
Ist dies die letzte bzw. einzige OnClipboardChange-Funktion, wird der Rückgabewert ignoriert. Ansonsten kann die Funktion einen Integer ungleich null zurückgeben, um zu verhindern, dass nachfolgende Funktionen aufgerufen werden.
Veraltet: Diese Vorgehensweise ist nicht für neue Skripte empfohlen. Verwenden Sie stattdessen die OnClipboardChange-Funktion.
Ein Label namens OnClipboardChange wird automatisch gestartet (falls vorhanden), sobald eine beliebige Anwendung (auch das Skript selbst) den Inhalt der Zwischenablage geändert hat. Das Label wird zudem beim Starten des Skripts einmal ausgeführt.
Die interne Variable A_EventInfo enthält eine der folgenden Zahlen:
Wenn die Zwischenablage geändert wird, während die Funktion oder das Label von OnClipboardChange läuft, geht das Benachrichtigungsereignis verloren. Falls das unerwünscht ist, können Sie Critical in der ersten Zeile des Labels nutzen. Allerdings werden dadurch auch andere Threads gepuffert/hinausgezögert (z. B. das Drücken eines Hotkeys), während der OnClipboardChange-Thread läuft.
Sobald das Skript selbst die Zwischenablage ändert, wird seine Funktion oder sein Label von OnClipboardChange normalerweise nicht sofort ausgeführt. Das heißt, dass Befehle unterhalb des Befehls, der die Zwischenablage geändert hat, wahrscheinlich vorher ausgeführt werden. Um die sofortige Ausführung der Funktion oder des Labels zu erzwingen, führen Sie nach dem Ändern der Zwischenablage eine kurze Verzögerung wie z. B. Sleep 20
durch.
Clipboard, OnExit(), OnExit, OnMessage(), RegisterCallback()
Trotz der unterschiedlichen Herangehensweise haben beide Beispiele den gleichen Effekt: Sie zeigen jedes Mal, wenn sich die Zwischenablage ändert, kurz einen Tooltip an. Beachten Sie, dass die Funktion nicht aufgerufen wird, wenn das Skript zum ersten Mal startet; nur wenn sich der Inhalt der Zwischenablage ändert.
#Persistent OnClipboardChange("ZwischenablageGeändert") return ZwischenablageGeändert(Typ) { ToolTip Datentyp der Zwischenablage: %Typ% Sleep 1000 ToolTip ; Schaltet den Tooltip aus. }
#Persistent return OnClipboardChange: ToolTip Datentyp der Zwischenablage: %A_EventInfo% Sleep 1000 ToolTip ; Schaltet den Tooltip aus. return