<script src="../static/ga4.js" type="text/javascript"></script> </head> <body> <h1>SetKeyDelay</h1> <p>Bestimmt die Verzögerung, die nach jedem via <a href="Send.htm">Send</a> oder <a href="ControlSend.htm">ControlSend</a> gesendeten Tastendruck eintritt.</p> <pre class="Syntax"><span class="func">SetKeyDelay</span> <span class="optional">, Verzögerung, DruckDauer, Play</span></pre> <h2 id="Parameters">Parameter</h2> <dl> <dt>Verzögerung</dt> <dd><p>Wenn leer oder weggelassen, wird die aktuelle Verzögerung beibehalten. Andernfalls geben Sie die Zeit in Millisekunden an. Kann ein <a href="../Variables.htm#Expressions">Ausdruck</a> sein. Geben Sie -1 an, um die Verzögerung vollständig zu deaktivieren, oder 0, um die kleinstmögliche Verzögerung zu veranlassen (sobald jedoch der <em>Play</em>-Parameter vorhanden ist, erzeugen sowohl 0 als auch -1 keine Verzögerung).</p></dd> <dt id="dur">DruckDauer</dt> <dd> <p>Bestimmte Videospiele und andere spezielle Anwendungen benötigen möglicherweise eine Verzögerung zwischen jedem Tastendruck (zwischen dem Drücken und Loslassen einer Taste).</p> <p>Wenn leer oder weggelassen, wird die aktuelle Druckdauer beibehalten. Andernfalls geben Sie die Zeit in Millisekunden an. Kann ein <a href="../Variables.htm#Expressions">Ausdruck</a> sein. Geben Sie -1 an, um die Verzögerung vollständig zu deaktivieren, oder 0, um die kleinstmögliche Verzögerung zu veranlassen (sobald jedoch der <em>Play</em>-Parameter vorhanden ist, erzeugen sowohl 0 als auch -1 keine Verzögerung).</p> <p class="note"><strong>Hinweis:</strong> <em>DruckDauer</em> erzeugt auch eine Verzögerung nach jeder Zustandsänderung einer Modifikatortaste (Strg, Alt, Umschalt und Win), um die zu sendenden Tasten zu unterstützen.</p> </dd> <dt>Play <span class="ver">[v1.0.43+]</span></dt> <dd><p>Wenn leer oder weggelassen, werden die Verzögerung und die Druckdauer auf den traditionellen SendEvent-Modus angewendet. Andernfalls geben Sie das Wort <strong>Play</strong> an, um beide auf den <a href="Send.htm#SendPlayDetail">SendPlay-Modus</a> anzuwenden. Wenn ein Skript diesen Parameter nie verwendet, sind beide immer -1 für SendPlay.</p></dd> </dl> <h2 id="Remarks">Bemerkungen</h2> <p>Wenn SetKeyDelay nicht verwendet wird, ist die Verzögerung standardmäßig 10 für den traditionellen SendEvent-Modus und -1 für den <a href="Send.htm#SendPlayDetail">SendPlay-Modus</a>. Beide Modi verwenden standardmäßig eine Druckdauer von -1.</p> <p>SetKeyDelay hat keinen Einfluss auf <a href="Send.htm#SendInputDetail">SendInput</a>, d.h. es erfolgt keine Verzögerung zwischen den Tastendrücken. Dasselbe gilt für <a href="Send.htm">Send</a>, wenn <a href="SendMode.htm">SendMode Input</a> aktiv ist.</p> <p>Nach jedem Tastendruck via <a href="Send.htm">Send</a> oder <a href="ControlSend.htm">ControlSend</a> 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.</p> <p>Während der Verzögerung (Sleep) wird der aktuelle Thread <a href="../misc/Threads.htm#Interrupt">unterbrechungsfrei</a> gemacht.</p> <p>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. Zum Beispiel ist eine Verzögerung von 1 bis 10 in den meisten Windows XP-Systemen (und wahrscheinlich auch Windows 2000) äquivalent zu 10 oder 15.</p> <p>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.</p> <p>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 <a href="SendMode.htm">SendEvent-Modus</a> senden kann. Um die Priorität eines Skripts zu erhöhen, verwenden Sie <code><a href="Process.htm">Process</a>, Priority,, High</code>. Obwohl dies normalerweise dazu führt, dass Tastendrücke schneller gesendet werden, als das <a href="WinActivate.htm">aktive Fenster</a> sie verarbeiten kann, werden sie vom System automatisch gepuffert. Gepufferte Tastendrücke erreichen das Zielfenster auch nach Abschluss des <a href="Send.htm">Send</a>-Befehls (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.</p> <p>Die interne Variable <strong>A_KeyDelay</strong> enthält die aktuelle Einstellung von <em>Verzögerung</em> für den Send/SendEvent-Modus. <span class="ver">[v1.1.23+]</span>: <strong>A_KeyDuration</strong> enthält die aktuelle Einstellung von <em>DruckDauer</em>, während <strong>A_KeyDelayPlay</strong> und <strong>A_KeyDurationPlay</strong> die Einstellungen für <a href="Send.htm#SendPlayDetail">SendPlay</a> enthalten.</p> <p>Jeder neue <a href="../misc/Threads.htm">Thread</a> (z.B. ein <a href="../Hotkeys.htm">Hotkey</a>, ein <a href="Menu.htm">benutzerdefinierter Menüpunkt</a> oder eine <a href="SetTimer.htm">zeitgesteuerte</a> Subroutine) verwendet zunächst die Standardeinstellung des Befehls. Diese Standardeinstellung kann geändert werden, indem der Befehl im <a href="../Scripts.htm#auto">automatischen Ausführungsbereich</a> (ganz oben im Skript) verwendet wird.</p> <h2 id="Related">Siehe auch</h2> <p><a href="Send.htm">Send</a>, <a href="ControlSend.htm">ControlSend</a>, <a href="SendMode.htm">SendMode</a>, <a href="SetMouseDelay.htm">SetMouseDelay</a>, <a href="SetControlDelay.htm">SetControlDelay</a>, <a href="SetWinDelay.htm">SetWinDelay</a>, <a href="SetBatchLines.htm">SetBatchLines</a>, <a href="Click.htm">Click</a></p> <h2 id="Examples">Beispiele</h2> <div class="ex" id="ExBasic"> <p><a class="ex_number" href="#ExBasic"></a> Veranlasst nach jedem Tastendruck via <a href="Send.htm">Send</a> oder <a href="ControlSend.htm">ControlSend</a> die kleinstmögliche Verzögerung.</p> <pre>SetKeyDelay, 0</pre> </div> </body> </html>