OnClipboardChange

OnClipboardChange() [v1.1.20+]

Registriert eine Funktion oder ein Funktionsobjekt, die immer dann gestartet werden sollen, wenn sich der Inhalt der Zwischenablage ändert.

OnClipboardChange(Func , HinzufügenEntfernen)

Parameter

Func

Ein Funktionsname oder Funktionsobjekt, die aufgerufen werden sollen. Die Parameter und der Rückgabewert der Funktion sind unten beschrieben.

HinzufügenEntfernen

Eines der folgenden Werte:
1 (Standard): Rufen Sie die Funktion nach anderen zuvor registrierten Funktionen auf.
-1: Rufen Sie die Funktion vor anderen zuvor registrierten Funktionen auf.
0: Rufen Sie die Funktion nicht auf.

Existiert ein OnClipboardChange-Label, wird das immer zuerst aufgerufen.

Func

Funktionsname(Typ)
Typ

Enthält einen der folgenden Werte:
0, wenn die Zwischenablage gerade leer ist;
1, wenn sie etwas enthält, das Text sein könnte (einschließlich kopierte Dateien aus einem Explorerfenster);
2, wenn sie etwas enthält, das überhaupt kein Text ist, wie z. B. ein Bild.

Rückgabewert

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.

Beispiel

Dieses Beispiel ist das gleiche wie das von unten, außer 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 das ToolTip aus.
}

OnClipboardChange-Label

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:
0, falls die Zwischenablage leer ist;
1, falls etwas enthalten ist, das in Textform ist (einschließlich kopierte Dateien);
2, falls etwas enthalten ist, das kein Text ist, wie z. B. ein Bild.

Das folgende Beispiel ist ein funktionierendes Skript. Sobald es ausgeführt wird, wird bei jeder Änderung der Zwischenablage kurz ein ToolTip angezeigt.

#Persistent
return

OnClipboardChange:
ToolTip Datentyp der Zwischenablage: %A_EventInfo%
Sleep 1000
ToolTip  ; Schaltet das ToolTip aus.
return

Bemerkungen

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, verwendet Critical in der ersten Zeile des Labels. Allerdings werden dadurch auch andere Threads zwischengespeichert/aufgeschoben (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ührt man nach dem Ändern der Zwischenablage eine kurze Verzögerung wie z. B. Sleep 20 durch.

Siehe auch

Clipboard, OnExit, OnMessage(), RegisterCallback()