diff --git a/target/compile_chm.ahk b/target/compile_chm.ahk index 312184f2..dc778ab4 100644 --- a/target/compile_chm.ahk +++ b/target/compile_chm.ahk @@ -76,6 +76,7 @@ INDEX_CreateHHK(data) sc := ComObject("ScriptControl") sc.Language := "JScript" sc.ExecuteStatement(data) + data := sc.Eval("indexData") content := " ( @@ -83,11 +84,12 @@ INDEX_CreateHHK(data)
)" content .= "`nVerwenden Sie SendPlay via SendPlay-Funktion, SendMode Play und/oder Hotstring-Option SP.
+Verwenden Sie SendPlay via SendPlay-Funktion, SendMode Play und/oder Hotstring-Option SP.
SendPlay "abc"
SendMode "Play" Send "abc"@@ -144,7 +143,7 @@
Hinweis: SendPlay funktioniert möglicherweise nicht, wenn die Benutzerkontensteuerung (engl. User Account Control, kurz UAC) aktiviert ist, auch wenn das Skript als Administrator ausgeführt wird.
+Veraltet: SendPlay funktioniert möglicherweise überhaupt nicht in Windows 11 und höher, oder wenn die Benutzerkontensteuerung (engl. User Account Control, kurz UAC) aktiviert ist, auch wenn das Skript als Administrator ausgeführt wird.
Erhöhen Sie SetKeyDelay. Zum Beispiel:
diff --git a/target/docs/Functions.htm b/target/docs/Functions.htm index 0f85f57c..f18ed723 100644 --- a/target/docs/Functions.htm +++ b/target/docs/Functions.htm @@ -7,7 +7,6 @@ - diff --git a/target/docs/HotkeyFeatures.htm b/target/docs/HotkeyFeatures.htm index 41ec0896..0b1d5bd6 100644 --- a/target/docs/HotkeyFeatures.htm +++ b/target/docs/HotkeyFeatures.htm @@ -7,7 +7,6 @@ - diff --git a/target/docs/Hotkeys.htm b/target/docs/Hotkeys.htm index a4d469c1..c95d3861 100644 --- a/target/docs/Hotkeys.htm +++ b/target/docs/Hotkeys.htm @@ -8,7 +8,6 @@ - diff --git a/target/docs/Hotstrings.htm b/target/docs/Hotstrings.htm index d39e147c..c351444b 100644 --- a/target/docs/Hotstrings.htm +++ b/target/docs/Hotstrings.htm @@ -8,7 +8,6 @@ - @@ -82,9 +81,9 @@S oder S0: Geben Sie den Buchstaben S an, um den Hotstring vor einer Suspension zu schützen. Geben Sie S0 (S mit der Zahl 0) an, um den Schutz zu entfernen, so dass der Hotstring wieder suspendiert werden kann. Wenn diese Option als Standardoption festgelegt ist, wird der Hotstring entweder durch S
oder #SuspendExempt
vor einer Suspension geschützt, d.h. um die Direktive zu überschreiben, muss S0
explizit im Hotstring verwendet werden.
SI oder SP oder SE: Bestimmt den Modus, den automatisch-ersetzende Hotstrings zum Senden ihrer Tastendrücke verwenden. Diese Optionen schließen sich gegenseitig aus, d.h. es kann immer nur eine Option aktiv sein. Die folgende Liste beschreibt die einzelnen Optionen:
SendInput ist der Standardmodus, der mit den oben genannten Optionen überschrieben werden kann. Anders als bei der SI-Option wird jedoch SendEvent anstelle von SendPlay verwendet, wenn SendInput nicht verfügbar ist.
T: Den Ersatztext im Text-Modus senden, d.h. jedes Zeichen via Zeichencode senden, ohne z.B. {Enter} in Enter, ^c in Strg+C usw. zu übersetzen und ohne jedes Zeichen in einen Tastendruck zu übersetzen. Diese Option wird automatisch für Hotstrings aktiviert, die einen Fortsetzungsbereich haben. Diese Option kann mit T0 oder R0 wieder deaktiviert oder mit R überschrieben werden.
diff --git a/target/docs/KeyList.htm b/target/docs/KeyList.htm index 708d84f6..5172be6f 100644 --- a/target/docs/KeyList.htm +++ b/target/docs/KeyList.htm @@ -8,7 +8,6 @@ -Send: Standardmäßig ist Send synonym mit SendInput, kann aber via SendMode synonym mit SendEvent oder SendPlay gemacht werden.
SendText: Ähnlich wie Send, außer dass alle Zeichen in Tasten als direkt geschriebener Text interpretiert und gesendet werden. Weitere Informationen finden Sie unter Text-Modus.
-SendInput und SendPlay: SendInput und SendPlay verwenden die gleiche Syntax wie Send, sind aber in der Regel schneller und zuverlässiger. Außerdem puffern sie alle physischen Tastatur- und Mausaktionen des Benutzers während des Sendens, um zu verhindern, dass die Tastendrücke des Benutzers mit den Gesendeten vermischt werden. SendMode kann verwendet werden, um Send synonym mit SendInput oder SendPlay zu machen. Weitere Informationen zu den einzelnen Modi finden Sie unter SendInput und SendPlay weiter unten.
-SendEvent: SendEvent verwendet zum Senden von Tastendrücken die keybd_event-Funktion von Windows (siehe Microsoft Docs für Details). Die Geschwindigkeit, mit der die Tastendrücke gesendet werden, wird durch SetKeyDelay beeinflusst. SendMode kann verwendet werden, um Send synonym mit SendEvent oder SendPlay zu machen.
+SendInput: SendInput verwendet die gleiche Syntax wie SendEvent, ist aber in der Regel schneller und zuverlässiger. Außerdem puffert es alle physischen Tastatur- und Mausaktionen des Benutzers während des Sendens, um zu verhindern, dass die Tastendrücke des Benutzers mit den Gesendeten vermischt werden. SendMode kann verwendet werden, um Send synonym mit SendInput zu machen. Weitere Informationen finden Sie unter SendInput.
+SendPlay: Veraltet. Ähnlich wie SendInput, funktioniert aber möglicherweise überhaupt nicht in Windows 11 und höher, oder wenn die Benutzerkontensteuerung (engl. User Account Control, kurz UAC) aktiviert ist, auch wenn das Skript als Administrator ausgeführt wird. Weitere Informationen finden Sie unter SendPlay.
+SendEvent: SendEvent verwendet zum Senden von Tastendrücken die keybd_event-Funktion von Windows (siehe Microsoft Docs für Details). Die Geschwindigkeit, mit der die Tastendrücke gesendet werden, wird durch SetKeyDelay beeinflusst. SendMode kann verwendet werden, um Send synonym mit SendEvent zu machen.
Die folgenden Modi beeinflussen die Interpretation der Zeichen in Tasten oder das Verhalten von Funktionen, die Tasten senden, wie z.B. Send, SendInput, SendPlay, SendEvent und ControlSend. Diese Modi müssen in Form von {x}
in Tasten angegeben werden, wobei x entweder Raw, Text oder Blind ist. Zum Beispiel {Raw}
.
Nach dem Wort "Blind" können ein oder mehrere Modifikatorsymbole (!#^+
) folgen, damit diese Modifikatoren bei Bedarf automatisch losgelassen werden können. Zum Beispiel bewirkt *^a::Send "{Blind^}b"
, dass Umschalt+B statt Strg+Umschalt+B gesendet wird, wenn Strg+Umschalt+A gedrückt wurde. {Blind!#^+}
erlaubt das Loslassen aller Modifikatoren bei Bedarf, aktiviert aber auch die anderen Effekte des Blind-Modus.
AutoHotkey verwendet automatisch den Blind-Modus beim Neubelegen einer Taste. Zum Beispiel würde die Neubelegung a::b
Folgendes erzeugen: 1) "b", wenn "a" eingegeben wird; 2) großes "B", wenn ein großes "A" eingegeben wird; und 3) Strg+B, wenn Strg+A eingegeben wird. Wenn Modifikatoren bei der Originaltaste angegeben sind (einschließlich Umschalt, wenn die Originaltaste ein Großbuchstabe ist), werden diese wie oben beschrieben ausgeschlossen. Zum Beispiel erzeugt ^a::b
ein normales B, kein Strg+B.
{Blind}
wird nicht von SendText und ControlSendText unterstützt; verwenden Sie stattdessen {Blind}{Text}
.
Der Blind-Modus wird von SendPlay nur teilweise unterstützt, insbesondere wenn es sich um die Modifikatortasten (Strg, Alt, Umschalt und Win) handelt.
+Der Blind-Modus wird von SendPlay nur teilweise unterstützt, insbesondere wenn es sich um die Modifikatortasten (Strg, Alt, Umschalt und Win) handelt.
Die folgende Tabelle listet alle speziellen Tasten auf, die gesendet werden können (jeder Tastenname muss mit geschweiften Klammern umschlossen werden):
@@ -528,7 +528,7 @@Wenn der Buchstabe in der aktuellen Tastaturbelegung existiert, wird er als Tastencode gesendet, den die Belegung mit diesem Buchstaben assoziiert (es sei denn, der Text-Modus wird verwendet, dann wird das Zeichen auf andere Weise gesendet). Mit anderen Worten, der obige Abschnitt ist nur für nicht-lateinbasierte Belegungen relevant, wie z.B. Russisch.
Modifikatorstatus: Wenn Send den Status der Modifikatortasten Win oder Alt ändern muss (z.B. wenn der Benutzer eine dieser Tasten gedrückt hält), kann es zusätzliche Tastendrücke injizieren (standardmäßig Strg), um zu verhindern, dass das Startmenü oder das Fenstermenü angezeigt wird. Weitere Informationen finden Sie unter A_MenuMaskKey.
-BlockInput vs. SendInput/SendPlay: Obwohl die BlockInput-Funktion verhindern kann, dass physische Tastendrücke den Fluss von simulierten Tastendrücken unterbrechen, ist es oft besser, SendInput oder SendPlay zu verwenden, damit Tastendrücke und Mausklicks nicht unterbrochen werden können. SendInput/Play verhindert im Gegensatz zu BlockInput, dass die Tastendrücke des Benutzers während des Sendens verworfen werden; stattdessen werden solche Tastendrücke gepuffert und danach gesendet.
+BlockInput vs. SendInput/SendPlay: Obwohl die BlockInput-Funktion verhindern kann, dass physische Tastendrücke den Fluss von simulierten Tastendrücken unterbrechen, ist es oft besser, SendInput oder SendPlay zu verwenden, damit Tastendrücke und Mausklicks nicht unterbrochen werden können. SendInput/Play verhindert im Gegensatz zu BlockInput, dass die Tastendrücke des Benutzers während des Sendens verworfen werden; stattdessen werden solche Tastendrücke gepuffert und danach gesendet.
Beim Senden vieler Tastendrücke kann ein Fortsetzungsbereich verwendet werden, um die Übersichtlichkeit und Wartbarkeit des Skripts zu verbessern.
Da das Betriebssystem das Simulieren von Strg+Alt+Entf nicht erlaubt, wird so etwas wie Send "^!{Delete}"
nicht funktionieren.
Send hat möglicherweise keine Wirkung, wenn das aktive Fenster mit Adminrechten ausgeführt wird und das Skript nicht. Dies ist auf einen Sicherheitsmechanismus namens Benutzeroberflächen-Rechteisolierung (engl. User Interface Privilege Isolation, kurz UIPI) zurückzuführen.
@@ -536,13 +536,13 @@SendInput ist in der Regel die bevorzugte Methode zum Senden von Tastendrücken und Mausklicks, da sie schneller und zuverlässiger ist als die anderen Methoden. In den meisten Fällen ist SendInput nahezu verzögerungsfrei, sogar wenn lange Zeichenketten gesendet werden. Durch diese Schnelligkeit ist SendInput auch zuverlässiger, da das Risiko verringert wird, dass unerwartet ein anderes Fenster erscheint und die Tastendrücke abfängt. Die Zuverlässigkeit wird noch weiter verbessert durch die Tatsache, dass alles, was der Benutzer während eines SendInputs eingibt, bis zu dessen Abschluss nach hinten verschoben wird.
Im Gegensatz zu den anderen Send-Modi ist SendInput auf ca. 5000 Zeichen begrenzt (dies kann je nach Systemversion und Performanzeinstellungen variieren). Zeichen und Ereignisse oberhalb dieser Grenze werden nicht gesendet.
-Hinweis: SendInput ignoriert SetKeyDelay, da das Betriebssystem in diesem Modus keine Verzögerung unterstützt. Wenn SendInput jedoch wegen der unten beschriebenen Bedingungen auf SendEvent zurückfällt, verwendet es SetKeyDelay -1, 0
(es sei denn, die Tastenverzögerung von SendEvent ist -1, -1
, dann wird -1, -1
verwendet). Wenn SendInput auf SendPlay zurückfällt, verwendet es die Tastenverzögerung von SendPlay.
Hinweis: SendInput ignoriert SetKeyDelay, da das Betriebssystem in diesem Modus keine Verzögerung unterstützt. Wenn SendInput jedoch wegen der unten beschriebenen Bedingungen auf SendEvent zurückfällt, verwendet es SetKeyDelay -1, 0
(es sei denn, die Tastenverzögerung von SendEvent ist -1, -1
, dann wird -1, -1
verwendet). Wenn SendInput auf SendPlay zurückfällt, verwendet es die Tastenverzögerung von SendPlay.
Wenn das Skript einen Low-Level-Tastatur-Hook installiert hat, deinstalliert SendInput ihn automatisch vor der Ausführung und installiert ihn danach wieder. Folglich ist SendInput in der Regel nicht in der Lage, die Hook-Hotkeys oder InputHooks des Skripts auszulösen. Der Hook wird temporär deinstalliert, da seine Existenz sonst alle Vorteile von SendInput zunichtemachen würde und somit sowohl SendPlay als auch SendEvent unterlegen wäre. Dies wird jedoch nur für den Hook des Skripts gemacht, nicht aber, wenn ein externer Hook erkannt wird, wie unten beschrieben.
- +Wenn SendInput Mausklicks mit Mitteln wie {Click} sendet, während CoordMode "Mouse", "Window"
oder CoordMode "Mouse", "Client"
aktiv ist, wird jeder Klick relativ zum Fenster sein, das zu Beginn des Sendens aktiv war. Wenn SendInput also absichtlich ein anderes Fenster aktiviert (z.B. mit ALT+TAB), werden die Koordinaten der nachfolgenden Klicks innerhalb derselben Funktion falsch sein, wenn sie relativ zum neuen statt zum alten Fenster sein sollten.
Warnung: SendPlay funktioniert möglicherweise nicht, wenn die Benutzerkontensteuerung (engl. User Account Control, kurz UAC) aktiviert ist, auch wenn das Skript als Administrator ausgeführt wird. Weitere Informationen finden Sie in der FAQ.
+Veraltet: SendPlay funktioniert möglicherweise überhaupt nicht in Windows 11 und höher, oder wenn die Benutzerkontensteuerung (engl. User Account Control, kurz UAC) aktiviert ist, auch wenn das Skript als Administrator ausgeführt wird (weitere Informationen finden Sie in der FAQ).
SendPlay hat gegenüber den anderen Modi den großen Vorteil, dass es Tastendrücke und Mausklicks in einer breiteren Palette von Videospielen "wiedergeben" kann. Zum Beispiel könnte ein bestimmtes Videospiel nur Hotstrings mit der SendPlay-Option akzeptieren.
Von den drei Send-Modi ist SendPlay der ungewöhnlichste, da er an sich keine Tastendrücke und Mausklicks simuliert. Stattdessen erstellt dieser Modus eine Sequenz von Ereignissen (Meldungen), die direkt in das aktive Fenster einfließen (ähnlich wie ControlSend, aber auf einer niedrigeren Ebene). Folglich löst SendPlay keine Hotkeys oder Hotstrings aus.
Wie bei SendInput werden die Tastendrücke von SendPlay nicht mit den Tastendrücken des Benutzers vermischt. Wenn der Benutzer also während eines SendPlays etwas eingibt, werden diese Tastendrücke bis zu dessen Abschluss nach hinten verschoben.
@@ -551,7 +551,7 @@SendPlay verwendet nicht die Standardeinstellungen von SetKeyDelay und SetMouseDelay. Stattdessen verwendet es standardmäßig überhaupt keine Verzögerung, was aber wie folgt geändert werden kann:
SetKeyDelay 0, 10, "Play" ; Beachten Sie, dass sowohl 0 als auch -1 im SendPlay-Modus dasselbe sind. SetMouseDelay 10, "Play"-
SendPlay kann Feststell, Num oder Rollen weder ein- noch ausschalten. Ebenso ist es nicht in der Lage, den von GetKeyState gesehenen Status einer Taste zu ändern, es sei denn, die Tastendrücke werden an eines der eigenen Fenster des Skripts gesendet. Selbst dann können Änderungen an den linken/rechten Modifikatortasten (z.B. RControl) nur über ihre neutralen Gegenstücke (z.B. Control) erkannt werden. Darüber hinaus gelten für SendPlay noch weitere Einschränkungen, die auf der SendMode-Seite beschrieben sind.
+SendPlay kann Feststell, Num oder Rollen weder ein- noch ausschalten. Ebenso ist es nicht in der Lage, den von GetKeyState gesehenen Status einer Taste zu ändern, es sei denn, die Tastendrücke werden an eines der eigenen Fenster des Skripts gesendet. Selbst dann können Änderungen an den linken/rechten Modifikatortasten (z.B. RControl) nur über ihre neutralen Gegenstücke (z.B. Control) erkannt werden. Darüber hinaus gelten für SendPlay noch weitere Einschränkungen, die auf der SendMode-Seite beschrieben sind.
Im Gegensatz zu SendInput und SendEvent kann ein SendPlay durch Drücken von Strg+Alt+Entf oder Strg+Esc unterbrochen werden. In diesem Fall werden die restlichen Tastendrücke nicht gesendet, aber das Skript wird weiter ausgeführt, als wäre SendPlay normal abgeschlossen worden.
Obwohl SendPlay LWin- und RWin-Ereignisse senden kann, werden diese direkt an das aktive Fenster gesendet, anstatt ihre native Systemfunktion auszuführen. Um das zu umgehen, verwenden Sie SendEvent. Zum Beispiel bewirkt SendEvent "#r"
, dass das Ausführen-Dialogfenster des Startmenüs angezeigt wird.
Typ: Zeichenkette, Integer oder Objekt
Wenn jeder dieser Parameter leer ist oder weggelassen wird, wird das Zuletzt Gefundene Fenster verwendet. Andernfalls geben Sie für FensterTitel einen Fenstertitel oder andere Kriterien zur Identifizierung des Zielfensters und/oder für FensterText eine Teilzeichenkette aus einem Textelement des Zielfensters an (Textelemente können mit dem internen Tool "Window Spy" in Erfahrung gebracht werden).
AusnahmeTitel und AusnahmeText können verwendet werden, um ein oder mehrere Fenster anhand ihres Titels oder Textes auszuschließen. Ihre Angabe ähnelt der von FensterTitel und FensterText, außer dass AusnahmeTitel keine anderen Kriterien als den Fenstertitel erkennt.
-Fenstertitel und -texte sind Groß-/Kleinschreibung-sensitiv. Standardmäßig werden versteckte Fenster nicht erkannt und versteckte Textelemente erkannt, was mit DetectHiddenWindows und DetectHiddenText geändert werden kann. Standardmäßig kann ein Fenstertitel den angegebenen FensterTitel oder AusnahmeTitel an beliebiger Stelle enthalten, um eine Übereinstimmung zu sein, was mit SetTitleMatchMode geändert werden kann.
+Fenstertitel und -texte sind Groß-/Kleinschreibung-sensitiv. Standardmäßig werden versteckte Fenster nicht erkannt und versteckte Textelemente erkannt, was mit DetectHiddenWindows und DetectHiddenText geändert werden kann; wenn jedoch reine HWND-Nummern verwendet werden, werden versteckte Fenster immer erkannt, unabhängig von DetectHiddenWindows. Standardmäßig kann ein Fenstertitel den angegebenen FensterTitel oder AusnahmeTitel an beliebiger Stelle enthalten, um eine Übereinstimmung zu sein, was mit SetTitleMatchMode geändert werden kann.
Typ: Zeichenkette
Geben Sie eines der folgenden Wörter an:
-Event: Verwendet die SendEvent-Methode für Send, SendText, Click, MouseMove, MouseClick und MouseClickDrag.
-Input: Verwendet die SendInput-Methode für Send, SendText, Click, MouseMove, MouseClick und MouseClickDrag. Bekannte Einschränkungen:
+Event: Verwendet die SendEvent-Methode für Send, SendText, Click, MouseMove, MouseClick und MouseClickDrag.
+Input: Verwendet die SendInput-Methode für Send, SendText, Click, MouseMove, MouseClick und MouseClickDrag. Bekannte Einschränkungen:
SendEvent "!{Left}"
oder SendInput "{Backspace}"
.InputThenPlay: Wie oben, aber wenn SendInput nicht verfügbar ist, fällt es in den Play-Modus (siehe unten) zurück, nicht in den Event-Modus. Dies bewirkt auch, dass die SendInput-Funktion selbst in den Play-Modus zurückfällt, wenn SendInput nicht verfügbar ist.
+InputThenPlay: Wie oben, aber wenn SendInput nicht verfügbar ist, fällt es in den Play-Modus (siehe unten) zurück, nicht in den Event-Modus. Dies bewirkt auch, dass die SendInput-Funktion selbst in den Play-Modus zurückfällt, wenn SendInput nicht verfügbar ist.
Play: Verwendet die SendPlay-Methode für Send, SendText, Click, MouseMove, MouseClick und MouseClickDrag. Bekannte Einschränkungen:
Wenn SetDefaultMouseSpeed nicht verwendet wird, ist die Mausgeschwindigkeit standardmäßig 2.
-SetDefaultMouseSpeed wird bei den Modi SendInput und SendPlay ignoriert; sie bewegen den Mauszeiger sofort (außer wenn SendInput auf SendEvent zurückfällt; beachten Sie, dass SetMouseDelay einen Modus für SendPlay hat). Um den Mauszeiger visuell langsamer zu bewegen (z.B. um einem Publikum etwas vorzuführen), verwenden Sie SendEvent "{Click 100 200}"
oder SendMode "Event"
(optional in Verbindung mit BlockInput).
SetDefaultMouseSpeed wird bei den Modi SendInput und SendPlay ignoriert; sie positionieren den Mauszeiger sofort auf die neuen Koordinaten (außer wenn SendInput auf SendEvent zurückfällt; außerdem hat SetMouseDelay einen Modus, der für SendPlay verwendet werden kann). Um den Mauszeiger visuell langsamer zu bewegen (z.B. um einem Publikum etwas vorzuführen), verwenden Sie SendEvent "{Click 100 200}"
oder SendMode "Event"
(optional in Verbindung mit BlockInput).
Die interne Variable A_DefaultMouseSpeed enthält die aktuelle Einstellung.
Die Funktionen MouseClick, MouseMove und MouseClickDrag haben einen Parameter, mit dem die Standardmausgeschwindigkeit überschrieben werden kann.
Wenn Geschw größer als 0 ist, wird die Geschwindigkeit auch durch SetMouseDelay beeinflusst, indem nach jeder inkrementellen Bewegung des Mauszeigers in Richtung seines Ziels eine Verzögerung erzeugt wird.
diff --git a/target/docs/lib/SetKeyDelay.htm b/target/docs/lib/SetKeyDelay.htm index 72eb88aa..90e24f45 100644 --- a/target/docs/lib/SetKeyDelay.htm +++ b/target/docs/lib/SetKeyDelay.htm @@ -7,7 +7,6 @@ - @@ -43,12 +42,12 @@Wenn SetKeyDelay nicht verwendet wird, ist die Verzögerung standardmäßig 10 für den traditionellen SendEvent-Modus und -1 für den SendPlay-Modus. Beide Modi verwenden standardmäßig eine Druckdauer von -1.
-SetKeyDelay hat keinen Einfluss auf SendInput, d.h. es erfolgt keine Verzögerung zwischen den Tastendrücken. Dasselbe gilt für Send, wenn SendMode Input aktiv ist.
+SetKeyDelay hat keinen Einfluss auf SendInput, d.h. es erfolgt keine Verzögerung zwischen den Tastendrücken. Dasselbe gilt für Send, wenn SendMode Input aktiv ist.
Nach jedem Tastendruck via Send oder ControlSend erfolgt automatisch eine kurze Verzögerung (Sleep). Diese Verzögerung ist notwendig, um die Zuverlässigkeit von Skripten zu verbessern, da es Fenster gibt, die mit vielen schnellen Tastendrücken nicht mithalten können.
Während der Verzögerung (Sleep) wird der aktuelle Thread unterbrechungsfrei gemacht.
Durch die Granularität (Ungenauigkeit) der Zeiterfassung im Betriebssystem werden Verzögerungen möglicherweise auf das nächstmögliche Vielfache von 10 oder 15 aufgerundet.
Im Send/SendEvent-Modus führt eine Verzögerung von 0 intern Sleep(0) aus, das die restliche Zeitscheibe des Skripts an jeden anderen Prozess weitergibt, der sie benötigen könnte. Wenn es keine gibt, erzeugt Sleep(0) überhaupt kein Sleep. Eine Verzögerung von -1 wird hingegen nie ein Sleep erzeugen. Für eine höhere Zuverlässigkeit wird 0 als Alternative zu -1 empfohlen.
-Wenn die Verzögerung auf -1 gesetzt ist, hat die Prozesspriorität eines Skripts einen großen Einfluss darauf, wie schnell es Tastendrücke im traditionellen SendEvent-Modus senden kann. Um die Priorität eines Skripts zu erhöhen, verwenden Sie ProcessSetPriority "High"
. Obwohl dies normalerweise dazu führt, dass Tastendrücke schneller gesendet werden, als das aktive Fenster sie verarbeiten kann, werden sie vom System automatisch gepuffert. Gepufferte Tastendrücke erreichen das Zielfenster auch nach Abschluss der Send-Funktion (selbst wenn das Fenster nicht mehr aktiv ist). Dies ist in der Regel harmlos, da alle nachfolgenden Tastendrücke, die an dasselbe Fenster gesendet werden, hinter den bereits gepufferten Tastendrücken eingereiht werden.
Wenn die Verzögerung auf -1 gesetzt ist, hat die Prozesspriorität eines Skripts einen großen Einfluss darauf, wie schnell es Tastendrücke im traditionellen SendEvent-Modus senden kann. Um die Priorität eines Skripts zu erhöhen, verwenden Sie ProcessSetPriority "High"
. Obwohl dies normalerweise dazu führt, dass Tastendrücke schneller gesendet werden, als das aktive Fenster sie verarbeiten kann, werden sie vom System automatisch gepuffert. Gepufferte Tastendrücke erreichen das Zielfenster auch nach Abschluss der Send-Funktion (selbst wenn das Fenster nicht mehr aktiv ist). Dies ist in der Regel harmlos, da alle nachfolgenden Tastendrücke, die an dasselbe Fenster gesendet werden, hinter den bereits gepufferten Tastendrücken eingereiht werden.
Die interne Variable A_KeyDelay enthält die aktuelle Einstellung von Verzögerung für den Send/SendEvent-Modus. A_KeyDuration enthält die aktuelle Einstellung von DruckDauer, während A_KeyDelayPlay und A_KeyDurationPlay die Einstellungen für SendPlay enthalten.
Jeder neue Thread (z.B. ein Hotkey, ein benutzerdefinierter Menüpunkt oder eine zeitgesteuerte Subroutine) verwendet zunächst die Standardeinstellung der Funktion. Diese Standardeinstellung kann geändert werden, indem die Funktion während der Startphase des Skripts verwendet wird.
Wenn SetMouseDelay nicht verwendet wird, ist die Verzögerung standardmäßig 10 für den traditionellen SendEvent-Modus und -1 für den SendPlay-Modus.
-Nach jeder Mausbewegung oder jedem Mausklick via Click, MouseMove, MouseClick und MouseClickDrag erfolgt automatisch eine kurze Verzögerung (Sleep) (außer im SendInput-Modus). Diese Verzögerung ist notwendig, um die Zuverlässigkeit von Skripten zu verbessern, da es Fenster gibt, die mit vielen schnellen Mausereignissen nicht mithalten können.
+Nach jeder Mausbewegung oder jedem Mausklick via Click, MouseMove, MouseClick und MouseClickDrag erfolgt automatisch eine kurze Verzögerung (Sleep) (außer im SendInput-Modus). Diese Verzögerung ist notwendig, um die Zuverlässigkeit von Skripten zu verbessern, da es Fenster gibt, die mit vielen schnellen Mausereignissen nicht mithalten können.
Durch die Granularität (Ungenauigkeit) der Zeiterfassung im Betriebssystem werden Verzögerungen möglicherweise auf das nächstmögliche Vielfache von 10 oder 15 aufgerundet.
Eine Verzögerung von 0 führt intern Sleep(0) aus, das die restliche Zeitscheibe des Skripts an jeden anderen Prozess weitergibt, der sie benötigen könnte. Wenn es keine gibt, erzeugt Sleep(0) überhaupt kein Sleep. Eine Verzögerung von -1 wird hingegen nie ein Sleep erzeugen.
Die interne Variable A_MouseDelay enthält die aktuelle Einstellung für den Send/SendEvent-Modus. A_MouseDelayPlay enthält die aktuelle Einstellung für den SendPlay-Modus.
diff --git a/target/docs/lib/SetNumScrollCapsLockState.htm b/target/docs/lib/SetNumScrollCapsLockState.htm index a8aac5b6..7b409fa7 100644 --- a/target/docs/lib/SetNumScrollCapsLockState.htm +++ b/target/docs/lib/SetNumScrollCapsLockState.htm @@ -7,7 +7,6 @@ - diff --git a/target/docs/lib/SetRegView.htm b/target/docs/lib/SetRegView.htm index 7edfe8e9..7326bacb 100644 --- a/target/docs/lib/SetRegView.htm +++ b/target/docs/lib/SetRegView.htm @@ -7,7 +7,6 @@ - diff --git a/target/docs/lib/SetStoreCapsLockMode.htm b/target/docs/lib/SetStoreCapsLockMode.htm index 9f659529..40eb7cec 100644 --- a/target/docs/lib/SetStoreCapsLockMode.htm +++ b/target/docs/lib/SetStoreCapsLockMode.htm @@ -7,7 +7,6 @@ - diff --git a/target/docs/lib/SetTimer.htm b/target/docs/lib/SetTimer.htm index 643520ed..817afb18 100644 --- a/target/docs/lib/SetTimer.htm +++ b/target/docs/lib/SetTimer.htm @@ -7,7 +7,6 @@ - diff --git a/target/docs/lib/SetTitleMatchMode.htm b/target/docs/lib/SetTitleMatchMode.htm index aaff8199..da31cb19 100644 --- a/target/docs/lib/SetTitleMatchMode.htm +++ b/target/docs/lib/SetTitleMatchMode.htm @@ -7,7 +7,6 @@ - diff --git a/target/docs/lib/SetWinDelay.htm b/target/docs/lib/SetWinDelay.htm index ad9fd54c..834a42d5 100644 --- a/target/docs/lib/SetWinDelay.htm +++ b/target/docs/lib/SetWinDelay.htm @@ -7,7 +7,6 @@ - diff --git a/target/docs/lib/SetWorkingDir.htm b/target/docs/lib/SetWorkingDir.htm index b890a313..e2007368 100644 --- a/target/docs/lib/SetWorkingDir.htm +++ b/target/docs/lib/SetWorkingDir.htm @@ -7,7 +7,6 @@ - diff --git a/target/docs/lib/Shutdown.htm b/target/docs/lib/Shutdown.htm index e31e66ae..3c2013c1 100644 --- a/target/docs/lib/Shutdown.htm +++ b/target/docs/lib/Shutdown.htm @@ -7,7 +7,6 @@ - diff --git a/target/docs/lib/Sleep.htm b/target/docs/lib/Sleep.htm index de642748..2e87814b 100644 --- a/target/docs/lib/Sleep.htm +++ b/target/docs/lib/Sleep.htm @@ -7,7 +7,6 @@ - diff --git a/target/docs/lib/Sort.htm b/target/docs/lib/Sort.htm index 2db6d694..8071166e 100644 --- a/target/docs/lib/Sort.htm +++ b/target/docs/lib/Sort.htm @@ -7,7 +7,6 @@ - diff --git a/target/docs/lib/Sound.htm b/target/docs/lib/Sound.htm index 3026dca3..33948a0a 100644 --- a/target/docs/lib/Sound.htm +++ b/target/docs/lib/Sound.htm @@ -8,7 +8,6 @@ - diff --git a/target/docs/lib/SoundBeep.htm b/target/docs/lib/SoundBeep.htm index 4935f7cd..93d0964d 100644 --- a/target/docs/lib/SoundBeep.htm +++ b/target/docs/lib/SoundBeep.htm @@ -7,7 +7,6 @@ - diff --git a/target/docs/lib/SoundGetInterface.htm b/target/docs/lib/SoundGetInterface.htm index 71ea8860..4d96572f 100644 --- a/target/docs/lib/SoundGetInterface.htm +++ b/target/docs/lib/SoundGetInterface.htm @@ -8,7 +8,6 @@ - diff --git a/target/docs/lib/SoundGetMute.htm b/target/docs/lib/SoundGetMute.htm index 1333c942..c58c58d2 100644 --- a/target/docs/lib/SoundGetMute.htm +++ b/target/docs/lib/SoundGetMute.htm @@ -8,7 +8,6 @@ - diff --git a/target/docs/lib/SoundGetName.htm b/target/docs/lib/SoundGetName.htm index 8a087a44..86e3627d 100644 --- a/target/docs/lib/SoundGetName.htm +++ b/target/docs/lib/SoundGetName.htm @@ -8,7 +8,6 @@ - diff --git a/target/docs/lib/SoundGetVolume.htm b/target/docs/lib/SoundGetVolume.htm index 283fcd45..e891efca 100644 --- a/target/docs/lib/SoundGetVolume.htm +++ b/target/docs/lib/SoundGetVolume.htm @@ -8,7 +8,6 @@ - diff --git a/target/docs/lib/SoundPlay.htm b/target/docs/lib/SoundPlay.htm index 3f364a17..26ba7b2e 100644 --- a/target/docs/lib/SoundPlay.htm +++ b/target/docs/lib/SoundPlay.htm @@ -7,7 +7,6 @@ - diff --git a/target/docs/lib/SoundSetMute.htm b/target/docs/lib/SoundSetMute.htm index 2ba963f4..3137a80a 100644 --- a/target/docs/lib/SoundSetMute.htm +++ b/target/docs/lib/SoundSetMute.htm @@ -8,7 +8,6 @@ - diff --git a/target/docs/lib/SoundSetVolume.htm b/target/docs/lib/SoundSetVolume.htm index a40fc30f..4571a823 100644 --- a/target/docs/lib/SoundSetVolume.htm +++ b/target/docs/lib/SoundSetVolume.htm @@ -8,7 +8,6 @@ - diff --git a/target/docs/lib/SplitPath.htm b/target/docs/lib/SplitPath.htm index b2ad92b1..0f66ac5c 100644 --- a/target/docs/lib/SplitPath.htm +++ b/target/docs/lib/SplitPath.htm @@ -7,7 +7,6 @@ - diff --git a/target/docs/lib/StatusBarGetText.htm b/target/docs/lib/StatusBarGetText.htm index bbb33348..963f0689 100644 --- a/target/docs/lib/StatusBarGetText.htm +++ b/target/docs/lib/StatusBarGetText.htm @@ -7,7 +7,6 @@ - @@ -30,7 +29,7 @@Typ: Zeichenkette, Integer oder Objekt
Wenn jeder dieser Parameter leer ist oder weggelassen wird, wird das Zuletzt Gefundene Fenster verwendet. Andernfalls geben Sie für FensterTitel einen Fenstertitel oder andere Kriterien zur Identifizierung des Zielfensters und/oder für FensterText eine Teilzeichenkette aus einem Textelement des Zielfensters an (Textelemente können mit dem internen Tool "Window Spy" in Erfahrung gebracht werden).
AusnahmeTitel und AusnahmeText können verwendet werden, um ein oder mehrere Fenster anhand ihres Titels oder Textes auszuschließen. Ihre Angabe ähnelt der von FensterTitel und FensterText, außer dass AusnahmeTitel keine anderen Kriterien als den Fenstertitel erkennt.
-Fenstertitel und -texte sind Groß-/Kleinschreibung-sensitiv. Standardmäßig werden versteckte Fenster nicht erkannt und versteckte Textelemente erkannt, was mit DetectHiddenWindows und DetectHiddenText geändert werden kann. Standardmäßig kann ein Fenstertitel den angegebenen FensterTitel oder AusnahmeTitel an beliebiger Stelle enthalten, um eine Übereinstimmung zu sein, was mit SetTitleMatchMode geändert werden kann.
+Fenstertitel und -texte sind Groß-/Kleinschreibung-sensitiv. Standardmäßig werden versteckte Fenster nicht erkannt und versteckte Textelemente erkannt, was mit DetectHiddenWindows und DetectHiddenText geändert werden kann; wenn jedoch reine HWND-Nummern verwendet werden, werden versteckte Fenster immer erkannt, unabhängig von DetectHiddenWindows. Standardmäßig kann ein Fenstertitel den angegebenen FensterTitel oder AusnahmeTitel an beliebiger Stelle enthalten, um eine Übereinstimmung zu sein, was mit SetTitleMatchMode geändert werden kann.
Typ: Zeichenkette, Integer oder Objekt
Wenn jeder dieser Parameter leer ist oder weggelassen wird, wird das Zuletzt Gefundene Fenster verwendet. Andernfalls geben Sie für FensterTitel einen Fenstertitel oder andere Kriterien zur Identifizierung des Zielfensters und/oder für FensterText eine Teilzeichenkette aus einem Textelement des Zielfensters an (Textelemente können mit dem internen Tool "Window Spy" in Erfahrung gebracht werden).
AusnahmeTitel und AusnahmeText können verwendet werden, um ein oder mehrere Fenster anhand ihres Titels oder Textes auszuschließen. Ihre Angabe ähnelt der von FensterTitel und FensterText, außer dass AusnahmeTitel keine anderen Kriterien als den Fenstertitel erkennt.
-Fenstertitel und -texte sind Groß-/Kleinschreibung-sensitiv. Standardmäßig werden versteckte Fenster nicht erkannt und versteckte Textelemente erkannt, was mit DetectHiddenWindows und DetectHiddenText geändert werden kann. Standardmäßig kann ein Fenstertitel den angegebenen FensterTitel oder AusnahmeTitel an beliebiger Stelle enthalten, um eine Übereinstimmung zu sein, was mit SetTitleMatchMode geändert werden kann.
+Fenstertitel und -texte sind Groß-/Kleinschreibung-sensitiv. Standardmäßig werden versteckte Fenster nicht erkannt und versteckte Textelemente erkannt, was mit DetectHiddenWindows und DetectHiddenText geändert werden kann; wenn jedoch reine HWND-Nummern verwendet werden, werden versteckte Fenster immer erkannt, unabhängig von DetectHiddenWindows. Standardmäßig kann ein Fenstertitel den angegebenen FensterTitel oder AusnahmeTitel an beliebiger Stelle enthalten, um eine Übereinstimmung zu sein, was mit SetTitleMatchMode geändert werden kann.