OnClipboardChange

OnClipboardChange kann als Funktion oder Label verwendet werden, wobei Ersteres für neue Skripte empfohlen ist. Als Funktion registriert es eine Funktion, die jedes Mal automatisch aufgerufen wird, wenn sich der Inhalt der Zwischenablage ändert. Als Label wird es jedes Mal gestartet, wenn sich der Inhalt der Zwischenablage ändert.

OnClipboardChange-Funktion [v1.1.20+]

Registriert eine Funktion, die jedes Mal automatisch aufgerufen wird, wenn sich der Inhalt der Zwischenablage ändert.

OnClipboardChange(Rückruf , HinzufügenEntfernen)

Parameter

Rückruf

Ein Funktionsname oder Funktionsobjekt, der/das aufgerufen werden soll. Um einen Funktionsnamen zu übergeben, setzen Sie ihn in Anführungszeichen.

Die Rückruffunktion akzeptiert einen Parameter und kann wie folgt definiert werden:

MeinRückruf(DatenTyp) { ...

Es spielt keine Rolle, welchen Namen Sie dem Parameter geben, allerdings wird ihm als Wert eine der folgenden Zahlen zugewiesen:

Der Parameter der Rückruffunktion kann weggelassen werden, wenn die entsprechende Information nicht benötigt wird.

Wenn dies die letzte oder einzige Rückruffunktion ist, wird der Rückgabewert ignoriert. Andernfalls kann sie einen Integer ungleich 0 zurückgeben, um zu verhindern, dass nachfolgende Rückruffunktionen aufgerufen werden.

HinzufügenEntfernen

Wenn weggelassen, wird standardmäßig 1 verwendet. Andernfalls geben Sie eine der folgenden Zahlen an:

Wenn das OnClipboardChange-Label existiert, wird dieses immer zuerst aufgerufen.

OnClipboardChange-Label

Veraltet: Das OnClipboardChange-Label ist nicht für neue Skripte empfohlen. Verwenden Sie stattdessen die oben beschriebene OnClipboardChange-Funktion.

Es ist möglich, ein Label namens OnClipboardChange im Skript anzugeben. Dies bewirkt, dass jedes Mal, wenn eine beliebige Anwendung (oder das Skript selbst) den Inhalt der Zwischenablage ändert, dieses Label automatisch gestartet wird. Außerdem wird das Label einmal beim Start des Skripts ausgeführt.

Die interne Variable A_EventInfo enthält eine der folgenden Zahlen:

Bemerkungen

Wenn sich die Zwischenablage ändert, während eine Rückruffunktion oder das Label ausgeführt wird, geht dieses Benachrichtigungsereignis verloren. Falls das unerwünscht ist, verwenden Sie Critical. Allerdings werden dadurch auch andere Threads gepuffert/verzögert (z.B. das Drücken eines Hotkeys), die während der Ausführung des OnClipboardChange-Threads auftreten.

Wenn das Skript selbst die Zwischenablage ändert, wird dessen Rückruffunktion oder Label in der Regel nicht sofort ausgeführt. Daher kann es vorkommen, dass Anweisungen, die unmittelbar nach der Anweisung folgen, die für die Änderung der Zwischenablage verantwortlich ist, noch ausgeführt werden. Um die sofortige Ausführung der Rückruffunktion oder des Labels zu erzwingen, veranlassen Sie nach der Änderung der Zwischenablage eine kurze Verzögerung, z.B. Sleep 20.

Clipboard, OnExit, OnMessage(), RegisterCallback()

Beispiele

Funktion vs. Label.

Trotz unterschiedlicher Syntax haben beide Beispiele den gleichen Effekt: Sie zeigen jedes Mal, wenn sich die Zwischenablage ändert, kurz einen Tooltip an. Hinweis: Im Gegensatz zum Label wird die Rückruffunktion nicht einmalig ausgeführt, wenn das Skript gestartet wird, sondern nur, wenn sich der Inhalt der Zwischenablage geändert hat.

#Persistent
OnClipboardChange("ZwischenablageGeändert")
return

ZwischenablageGeändert(DatenTyp) {
    ToolTip Datentyp der Zwischenablage: %DatenTyp%
    Sleep 1000
    ToolTip  ; Tooltip ausschalten.
}
#Persistent
return

OnClipboardChange:
ToolTip Datentyp der Zwischenablage: %A_EventInfo%
Sleep 1000
ToolTip  ; Tooltip ausschalten.
return

Dasselbe wie oben, aber mit einem Funktionsobjekt.

#Persistent
OnClipboardChange(ZwischenablageGeändert)
return

class ZwischenablageGeändert {
    Call(DatenTyp) {
        ToolTip Datentyp der Zwischenablage: %DatenTyp%
        Sleep 1000
        ToolTip  ; Tooltip ausschalten.
    }
}