forked from autohotkey-docs-translation/v1-de
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathHotkeys.htm
297 lines (280 loc) · 30.6 KB
/
Hotkeys.htm
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
<!DOCTYPE HTML>
<html lang="de">
<head>
<title>Hotkeys - Definition & Verwendung | AutoHotkey</title>
<meta name="description" content="Erfahren Sie mehr über Hotkeys im Allgemeinen, Modifikatorsymbole, kontextabhängige Hotkeys, benutzerdefinierte Kombinationen, Mausrad-Hotkeys, Funktions-Hotkeys, etc." />
<meta name="keywords" content="hotkey,hotkeys,hot key,hot keys,shortcut,shortcuts,shortcut key,shortcut keys,keyboard shortcut,keyboard shortcuts,button,buttons,click,press,tastenkürzel,schnelltaste,schnelltasten,tastenkombination,tastenkombinationen,taste,tasten,klicken,drücken">
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<link href="static/theme.css" rel="stylesheet" type="text/css" />
<script src="static/content.js" type="text/javascript"></script>
<script src="static/ga.js" type="text/javascript"></script>
</head>
<body>
<h1>Hotkeys <span class="headnote">(Maus-, Joystick- und Tastaturkürzel)</span></h1>
<h2>Inhaltsverzeichnis</h2>
<ul>
<li><a href="#Intro">Einführung und einfache Beispiele</a></li>
<li><a href="#Symbols">Hotkey-Modifikatorsymbole</a></li>
<li><a href="#Context">Kontextabhängige Hotkeys</a></li>
<li><a href="#combo">Benutzerdefinierte Kombinationen</a></li>
<li><a href="#Features">Sonstige Features</a></li>
<li><a href="#Wheel">Mausrad-Hotkeys</a></li>
<li><a href="#Remarks">Tipps und Hinweise</a></li>
<li><a href="#AltTabDetail">Alt-Tab-Hotkeys</a></li>
<li><a href="#Function">Funktions-Hotkeys</a> <span class="ver">[v1.1.20+]</span></li>
</ul>
<h2 id="Intro">Einführung und einfache Beispiele</h2>
<p>Hotkeys werden manchmal auch als Tastenkürzel bezeichnet, weil sie schnell und einfach eine Aktion auslösen können (eine Aktion wäre beispielsweise das Starten eines Programms oder <a href="misc/Macros.htm">Tastatur-Makros</a>). Das folgende Beispiel zeigt, wie der Texteditor mit dem Hotkey <kbd>Win</kbd>+<kbd>N</kbd> gestartet werden kann. Das Raute-Zeichen [#] ist ein sogenannter <em>Modifikator</em> und symbolisiert die <kbd>Win</kbd>-Taste:</p>
<pre>#n::
Run Notepad
return</pre>
<p>Das <code><a href="commands/Return.htm">return</a></code> in der letzten Zeile beendet den Hotkey. Wenn ein Hotkey allerdings nur eine einzige Zeile ausführen muss, kann diese Zeile rechts neben dem Doppelpunkt-Paar geschrieben werden. In diesem Fall wird das <code>return</code> automatisch angewendet:</p>
<pre>#n::Run Notepad</pre>
<p>Um zu erreichen, dass ein Hotkey von mehr als einem Modifikator ausgelöst werden kann, müssen diese nebeneinander aufgelistet werden (die Reihenfolge spielt keine Rolle). Das folgende Beispiel benutzt <code>^!s</code>, um <kbd>Strg</kbd>+<kbd>Alt</kbd>+<kbd>S</kbd> zu kennzeichnen:</p>
<pre>^!s::
<a href="commands/Send.htm">Send</a> Mit freundlichen Grüßen,{Enter}Max Mustermann <em>; Diese Zeile sendet Tastendrücke an das aktive (vorderste) Fenster.</em>
return</pre>
<h2 id="Symbols">Hotkey-Modifikatorsymbole</h2>
<p>Folgende Modifikatorsymbole sind zum Definieren von Hotkeys möglich:</p>
<table class="info">
<tr>
<th style="width:30px">Symbol</th>
<th>Beschreibung</th>
</tr>
<tr>
<td><strong>#</strong></td>
<td>
<p><kbd>Win</kbd> (Windows-Logo-Taste).</p>
<p id="win-l"><span class="ver">[v1.0.48.01+]</span>: In Windows Vista oder höher werden Hotkeys in Verbindung mit der <kbd>Win</kbd>-Taste (z. B. #a) warten, bis die <kbd>Win</kbd>-Taste losgelassen wird, bevor ein beliebiger Text mit einem <kbd>L</kbd>-Tastendruck gesendet wird. Dadurch wird verhindert, dass ein <a href="commands/Send.htm">Send</a> in so einem Hotkey den PC unbeabsichtigt sperrt. Dieses Verhalten gilt für alle Send-Methoden, außer <a href="commands/Send.htm#SendPlayDetail">SendPlay</a> (weil es das nicht braucht) und <a href="commands/Send.htm#blind">Blind-Modus</a>. <span class="ver">[v1.1.29+]:</span> <a href="commands/Send.htm#SendText">Text-Modus</a> ist auch ausgeschlossen.</p>
<p class="note"><strong>Hinweis:</strong> Das Drücken eines Hotkeys, der die <kbd>Win</kbd>-Taste enthält, kann zu zusätzlichen simulierten Tastendrücken führen (standardmäßig <kbd>Strg</kbd>). Siehe <a href="commands/_MenuMaskKey.htm">#MenuMaskKey</a>.</p>
</td>
</tr>
<tr>
<td><strong>!</strong></td>
<td>
<p><kbd>Alt</kbd></p>
<p class="note"><strong>Hinweis:</strong> Das Drücken eines Hotkeys, der die <kbd>Alt</kbd>-Taste enthält, kann zu zusätzlichen simulierten Tastendrücken führen (standardmäßig <kbd>Strg</kbd>). Siehe <a href="commands/_MenuMaskKey.htm">#MenuMaskKey</a>.</p>
</td>
</tr>
<tr>
<td><strong>^</strong></td>
<td><kbd>Strg</kbd></td>
</tr>
<tr>
<td><strong>+</strong></td>
<td><kbd>Umschalt</kbd></td>
</tr>
<tr>
<td><strong>&</strong></td>
<td>Mit einem Und-Zeichen können zwei beliebige Tasten oder Maustasten zu einem benutzerdefinierten Hotkey kombiniert werden. Siehe <a href="#combo">unten</a> für weitere Details.</td>
</tr>
<tr id="LeftRight">
<td><strong><</strong></td>
<td>Verwendet die linke Taste des Tastenpaares. Zum Beispiel würde <!a das gleiche wie !a bewirken, allerdings kann der Hotkey nur mit der linken <kbd>Alt</kbd>-Taste ausgelöst werden.</td>
</tr>
<tr>
<td><strong>></strong></td>
<td>Verwendet die rechte Taste des Tastenpaares.</td>
</tr>
<tr id="AltGr">
<td><strong><^>!</strong></td>
<td><p><kbd>AltGr</kbd> (alternativer Schriftsatz). Wenn Ihre Tastaturbelegung eine <kbd>AltGr</kbd>-Taste anstelle einer rechten <kbd>Alt</kbd>-Taste aufweist, kann diese Symbolreihe in der Regel für <kbd>AltGr</kbd> benutzt werden. Zum Beispiel:</p>
<pre><^>!m::MsgBox Sie haben ALTGR+M gedrückt.
<^<!m::MsgBox Sie haben STRGLinks+ALTLinks+M gedrückt.</pre>
<p>Wenn die <kbd>AltGr</kbd>-Taste stattdessen selbst zu einem Hotkey gemacht werden soll, muss der folgende Hotkey benutzt werden (ohne dass Hotkeys wie oben vorhanden sind):</p>
<pre>LControl & RAlt::MsgBox Sie haben ALTGR gedrückt.</pre></td>
</tr>
<tr id="wildcard">
<td><strong>*</strong></td>
<td><p>Platzhalter: Bewirkt, dass der Hotkey immer ausgelöst wird, egal ob zusätzliche Modifikatoren gedrückt gehalten werden. Dieses Symbol wird oft zum <a href="misc/Remap.htm">Neubelegen</a> von Tasten oder Maustasten benutzt. Zum Beispiel:</p>
<pre>*#c::Run Calc.exe <em>; WIN+C, UMSCHALT+WIN+C und STRG+WIN+C usw. können diesen Hotkey auslösen.</em>
*ScrollLock::Run Notepad <em>; ScrollLock wird diesen Hotkey immer auslösen, egal ob Modifikatoren gedrückt gehalten werden.</em></pre>
<p>Platzhalter-Hotkeys sowie Hotkeys, die mit einem Platzhalter-Hotkey übereinstimmen würden, benutzen immer den Tastatur-Hook. Zum Beispiel würde die Anwesenheit von <code>*a::</code> bewirken, dass <code>^a::</code> immer auf den Hook zugreifen wird.</p></td>
</tr>
<tr id="Tilde">
<td><strong>~</strong></td>
<td><p>Verhindert, dass die ursprünglichen Funktionen der Hotkey-Tasten blockiert werden (bzw. im System versteckt werden). Die Hotkeys im folgenden Beispiel bewirken, dass der Mausklick des Benutzers an das aktive Fenster gesendet wird, egal welche Aktionen ihnen zugewiesen sind:</p>
<pre>~RButton::MsgBox Sie haben die rechte Maustaste gedrückt.
~RButton & C::MsgBox Sie haben C gedrückt`, während Sie die rechte Maustaste gedrückt hielten.</pre>
<p>Im Gegensatz zu den anderen Präfix-Symbolen darf das Tilde-Präfix in einigen <a href="commands/_IfWinActive.htm#variant">Varianten</a> eines Hotkeys vorkommen und in anderen nicht. Wenn ein Tildezeichen allerdings an die <a href="#prefix">Präfixtaste</a> einer beliebigen benutzerdefinierten Tastenkombination angefügt wurde, die weder ausgeschaltet noch gesperrt ist, wird das Verhalten dieser Präfixtaste bei <em>allen</em> Kombinationen beeinflusst.</p>
<p>Spezielle Hotkeys, die etwas mit <a href="#alttab">Alt-Tab</a> zu tun haben, ignorieren immer das Tilde-Präfix.</p>
<p><span class="ver">[v1.1.14+]:</span> Wenn das Tilde-Präfix an eine benutzerdefinierte Modifikatortaste (<a href="#prefix">Präfixtaste</a>) angefügt wird, die selbst auch ein Hotkey ist, wird dieser Hotkey ausgelöst, sobald die Taste nach unten gedrückt wird, und nicht erst, nachdem die Taste losgelassen wurde. Zum Beispiel wird der oben genannte Hotkey <em>~RButton</em> bereits ausgelöst, wenn die Maustaste nach unten gedrückt wird. Vor <span class="ver">v1.1.14</span> (bzw. ohne Tilde-Präfix) wurde der Hotkey erst ausgelöst, nachdem die Maustaste losgelassen wurde, sofern die Tastenkombination <em>RButton & C</em> nicht aktiviert war.</p>
<p>Wenn das Tilde-Präfix nur an die benutzerdefinierte Tastenkombination angefügt wird, aber nicht an den kombinationslosen Hotkey, wird die ursprüngliche Funktion der Taste weiterhin blockiert. Zum Beispiel bewirkt das folgende Skript, dass das Halten der <kbd>Menü</kbd>-Taste nicht das Kontextmenü auslöst, sondern einen ToolTip anzeigt:</p>
<pre>AppsKey::ToolTip Drücke < oder > zum Durchschalten der Fenster.
AppsKey Up::ToolTip
~AppsKey & <::Send !+{Esc}
~AppsKey & >::Send !{Esc}</pre>
<p>Sobald der Tilde-Modifikator bei mindestens einer Variante eines Tastatur-Hotkeys angegeben ist, wird dieser Hotkey immer den Tastatur-Hook benutzen.</p>
</td>
</tr>
<tr id="prefixdollar">
<td><strong>$</strong></td>
<td>
<p>Dieses Präfix ist normalerweise nur notwendig, um zu verhindern, dass ein Hotkey sich selbst via <a href="commands/Send.htm">Send</a>-Befehl auslösen kann. Das $-Präfix zwingt den <a href="commands/_InstallKeybdHook.htm">Tastatur-Hook</a> diesen Hotkey zu implementieren, um zu erreichen, dass dieser Hotkey nicht mehr durch den <a href="commands/Send.htm">Send</a>-Befehl ausgelöst werden kann. Dieses Präfix ist das gleiche wie, als hätte man <code><a href="commands/_UseHook.htm">#UseHook</a></code> irgendwo vor der Hotkey-Definition angegeben.</p>
<p>Das $-Präfix hat keinen Effekt auf Maus-Hotkeys, weil solche Hotkeys immer auf den Maus-Hook zugreifen. Außerdem hat es keinen Effekt auf Hotkeys, die den Tastatur-Hook bereits einbeziehen, wie z. B. Tastatur-Hotkeys mit <a href="#Tilde">Tilde</a>- (~) oder <a href="#wildcard">Platzhalter</a>-Modifikatoren (*), KeyUp-Hotkeys und benutzerdefinierte Kombinationen. Mit <a href="commands/ListHotkeys.htm">ListHotkeys</a> kann man feststellen, ob ein bestimmter Hotkey den Tastatur-Hook benutzt.</p>
<p><span class="ver">[v1.1.06+]:</span> <a href="commands/_InputLevel.htm">#InputLevel</a> und <a href="commands/SendLevel.htm">SendLevel</a> ermöglichen zusätzliche Kontrolle darüber, welche Hotkeys und Hotstrings vom Send-Befehl ausgelöst werden können.</p>
</td>
</tr>
<tr id="keyup">
<td>UP</td>
<td><p>Das UP-Wort muss nach dem Namen eines Hotkeys erfolgen und bewirkt, dass der Hotkey erst ausgelöst wird, wenn die Taste losgelassen wird, und nicht, wenn sie bereits nach unten gedrückt wird. Das folgende Beispiel zeigt, wie die linke <kbd>Win</kbd>-Taste <a href="misc/Remap.htm">neubelegt</a> werden kann, um den Effekt der linken <kbd>Strg</kbd>-Taste nachzuahmen:</p>
<pre>*LWin::Send {LControl down}
*LWin Up::Send {LControl up}
</pre>
<p>Das UP-Wort kann auch bei normalen Hotkeys angewendet werden. Zum Beispiel: <code>^!r Up::MsgBox Sie haben STRG+ALT+R gedrückt und losgelassen</code>. Dieses Wort funktioniert auch bei <a href="#combo">Kombinations-Hotkeys</a> (z. B. <code>F1 & e Up::</code>)</p>
<p>Einschränkungen: 1) UP funktioniert nicht in Verbindung mit <a href="KeyList.htm">Joystick-Tasten</a>; und 2) Ein UP-Hotkey ohne entsprechendem Counterpart (normaler Hotkey oder DOWN-Hotkey) wird diese Taste komplett übernehmen, um zu verhindern, dass sie stecken bleibt. Eine Möglichkeit dies zu verhindern wäre es, ein <a href="#Tilde">Tilde-Präfix</a> anzufügen (z. B. <code>~LControl up::</code>)</p>
<p>UP-Hotkeys und ihre Counterparts (DOWN-Hotkeys, sofern vorhanden) benutzen immer den Tastatur-Hook.</p>
<p>Erwähnenswert ist außerdem, dass mit einer ähnlichen Methode wie oben ein Hotkey zu einer Präfix-Taste gemacht werden kann. Der Vorteil: Obwohl der Hotkey nach dem Loslassen ausgelöst wird, wird er dies nur tun, wenn Sie keine andere Taste drücken, während er gedrückt gehalten wurde. Zum Beispiel:</p>
<pre>LControl & F1::return <em>; Die linke STRG-Taste wird zu einem Präfix, sobald sie mindestens einmal vor "&" verwendet wird.</em>
LControl::MsgBox Sie haben LControl losgelassen`, ohne mit ihr eine andere Taste zu modifizieren.</pre></td>
</tr>
</table>
<p class="note"><strong>Hinweis</strong>: Die <a href="KeyList.htm">Tastenliste</a> enthält alle unterstützten Tastatur-, Maus- oder Joystick-Tasten.</p>
<p><br>
Mehrere Hotkeys können vertikal übereinander gestapelt werden, um sie die gleiche Aktion durchführen zu lassen. Zum Beispiel:</p>
<pre>^Numpad0::
^Numpad1::
MsgBox Drücke entweder STRG+Numpad0 oder STRG+Numpad1`, um diese Meldung anzuzeigen.
return</pre>
<p>Um eine Taste oder Tastenkombination im kompletten System zu deaktivieren, ist es erforderlich, sie nichts tun zu lassen. Das folgende Beispiel deaktiviert die rechte <kbd>Win</kbd>-Taste:</p>
<pre>RWin::return</pre>
<h2 id="Context">Kontextabhängige Hotkeys</h2>
<p>Die Direktiven <a href="commands/_IfWinActive.htm">#IfWinActive/Exist</a> und <a href="commands/_If.htm">#If</a> können benutzt werden, um Hotkeys je nach Bedingung unterschiedliche (oder überhaupt keine) Aktionen durchführen zu lassen. Zum Beispiel:</p>
<pre>#IfWinActive, ahk_class Notepad
^a::MsgBox Sie haben STRG+A gedrückt`, während der Texteditor aktiv ist. Drückt man STRG+A in irgendeinem anderen Fenster, wird die Tastenkombination selbst gesendet.
#c::MsgBox Sie haben WIN+C gedrückt`, während der Texteditor aktiv ist.
#IfWinActive
#c::MsgBox Sie haben WIN+C gedrückt`, während ein beliebiges Fenster außer Texteditor aktiv ist.
#If MausIstÜber("ahk_class Shell_TrayWnd") <em>; Für MausIstÜber, siehe <a href="commands/_If.htm#ExVolume">#If-Beispiel 1</a>.</em>
WheelUp::Send {Volume_Up} <em>; Mausrad über die Taskleiste: Lautstärke erhöhen/verringern.</em>
WheelDown::Send {Volume_Down} <em>;</em>
</pre>
<h2 id="combo">Benutzerdefinierte Kombinationen</h2>
<p>Um eine benutzerdefinierte Kombination zu definieren, die aus zwei Tasten (außer Joystick-Tasten) besteht, ist es erforderlich, " & " zwischen diesen Tasten zu setzen. Das folgende Beispiel zeigt, wie ein Hotkey ausgelöst werden kann, wenn Numpad0 gedrückt gehalten und danach eine zweite Taste gedrückt wird:</p>
<pre id="prefix">Numpad0 & Numpad1::MsgBox Sie haben Numpad1 gedrückt, während Sie Numpad0 gedrückt hielten.
Numpad0 & Numpad2::Run Notepad</pre>
<p><strong>Die Präfixtaste verliert ihre ursprüngliche Funktion:</strong> Im oberen Beispiel wurde Numpad0 zu einer <em>Präfixtaste</em> gemacht; allerdings hat dies den Effekt, dass Numpad0 ihre originale/ursprüngliche Funktion nicht durchführen kann, sobald sie selbst gedrückt wird. Um das zu vermeiden, können Sie das Skript so konfigurieren, dass Numpad0 eine neue Aktion durchführt, wie z. B.:</p>
<pre>Numpad0::WinMaximize A <em>; Maximiert das aktive/vorderste Fenster.</em>
Numpad0::Send {Numpad0} <em>; Numpad0 erzeugt nach dem <i>Loslassen</i> einen Numpad0-Tastendruck. Siehe unteren Kommentar.</em></pre>
<p><strong>Hotkey nach dem Loslassen auslösen:</strong> Bereits einer der oben genannten benutzerdefinierten Kombinations-Hotkeys bewirkt, dass die definierte Aktion erst ausgelöst wird, wenn Numpad0 <em>losgelassen</em> wird, aber nur, wenn Sie keine andere Taste drücken, während Numpad0 gedrückt gehalten wurde. <span class="ver">[v1.1.14+]</span>: Dieses Verhalten kann durch Anfügen des <a href="#Tilde">Tilde-Präfixes</a> an beiden Hotkeys unterdrückt werden.</p>
<p id="combo_mods"><strong>Modifikatoren:</strong> Im Gegensatz zu normalen Hotkeys verhalten sich benutzerdefinierte Kombinationen so, als hätten sie standardmäßig den <a href="#wildcard">Platzhalter-Modifikator (*)</a>. Zum Beispiel wird <code>1 & 2::</code> immer ausgelöst, egal ob man beim Drücken von <kbd>1</kbd> und <kbd>2</kbd> die <kbd>Strg</kbd>- oder <kbd>Alt</kbd>-Taste gedrückt hält, während <code>^1::</code> nur durch Drücken von <kbd>Strg</kbd>+<kbd>1</kbd> ausgelöst werden kann, und nicht durch <kbd>Strg</kbd>+<kbd>Alt</kbd>+<kbd>1</kbd>.</p>
<p>In Bezug auf standardmäßigen Modifikatortasten funktionieren normale Hotkeys in der Regel genauso oder besser als "benutzerdefinierte" Kombinationen. Zum Beispiel ist <code><+s::</code> eher zu empfehlen als <code>LShift & s::</code>.</p>
<p>Kombinationen, die aus drei oder mehr Tasten bestehen, werden nicht unterstützt. Kombinationen können, sofern sie von Ihrer Tastatur unterstützt werden, mithilfe von <a href="commands/_If.htm">#If</a> und <a href="commands/GetKeyState.htm">GetKeyState()</a> erkannt werden, allerdings ist dann nicht immer ein konsistentes Ergebnis gegeben. Zum Beispiel:</p>
<pre><em>; Halten Sie die MENÜ- und ALT-Taste gedrückt, und drücken Sie dann Bindestrich (-).</em>
#if GetKeyState("AppsKey", "P")
Alt & -::MsgBox Hotkey aktiviert.
<em>; Notwendig, wenn ALT zuerst gedrückt gehalten wird:</em>
#if GetKeyState("Alt", "P")
AppsKey & -::MsgBox Hotkey aktiviert.
<em>; , & . & -::</em>
#if GetKeyState(",") && GetKeyState(".")
-::MsgBox</pre>
<p><strong>Tastatur-Hook:</strong> Benutzerdefinierte Kombinationen, die Tastatur-Tasten enthalten, sowie Hotkeys, die die Präfixtaste als Suffix benutzen, verwenden immer den Tastatur-Hook. Zum Beispiel würde <code>a & b::</code> bewirken, dass <code>^a::</code> immer den Hook einbeziehen wird.</p>
<h2 id="Features">Sonstige Features</h2>
<p><strong>NUM-, FESTSTELL- und ROLLEN-Taste</strong>: Diese Tasten können gezwungen werden, "AlwaysOn" (immer an) oder "AlwaysOff" (immer aus) zu sein. Zum Beispiel: <code><a href="commands/SetNumScrollCapsLockState.htm">SetNumLockState</a> AlwaysOn</code>.</p>
<p><strong>Explorer-Tastenkürzel überschreiben</strong>: Die vordefinierten Windows-Hotkeys wie <kbd>Win</kbd>+<kbd>E</kbd> (#e) und <kbd>Win</kbd>+<kbd>R</kbd> (#r) können jeweils mit einer beliebigen benutzerdefinierten Aktion überschrieben werden. Siehe "<a href="misc/Override.htm">Überschreiben oder Deaktivieren von Hotkeys</a>" für Details.</p>
<p id="alttab"><strong>Alt-Tab ersetzen</strong>: Hotkeys können eine alternative Methode für Alt-Tab bereitstellen. Zum Beispiel bewirken die folgenden zwei Hotkeys, dass die Alt-Tab-Prozedur mit der rechten Hand durchgeführt werden kann:</p>
<pre>RControl & RShift::AltTab <em>; Halten Sie rechte STRG gedrückt und drücken Sie mehrmals rechte UMSCHALT, um durchzuschalten.</em>
RControl & Enter::ShiftAltTab <em>; Halten Sie weiter rechte STRG gedrückt und drücken Sie ENTER, um in die andere Richtung durchzuschalten.</em></pre>
<p>Siehe <a href="#AltTabDetail">Alt-Tab</a> für weitere Details.</p>
<h2 id="Wheel">Mausrad-Hotkeys</h2>
<p>Mit den Tastennamen WheelDown und WheelUp können Hotkeys erstellt werden, die durch Drehen des Mausrads ausgelöst werden können. Hier einige Beispiele für Mausrad-Hotkeys:</p>
<pre>MButton & WheelDown::MsgBox Sie haben das Mausrad nach unten gedreht`, während Sie die mittlere Maustaste gedrückt hielten.
^!WheelUp::MsgBox Sie haben das Mausrad nach oben gedreht`, während Sie STRG+ALT gedrückt hielten.</pre>
<p id="HWheel"><span class="ver">[v1.0.48+]</span>: Die Tastennamen WheelLeft und WheelRight werden ebenfalls unterstützt, allerdings funktionieren diese nicht in Betriebssystemen älter als Windows Vista. Einige Mäuse haben ein einzelnes Rad, das hoch und runter gescrollt oder nach links und rechts gekippt werden kann. Grundsätzlich werden in solchen Fällen WheelLeft- oder WheelRight-Signale wiederholt gesendet, während das Rad seitlich gekippt wird, um ein kontinuierliches Scrollen zu simulieren. Dies führt in der Regel dazu, dass die Hotkeys wiederholt ausgeführt werden.</p>
<p><span class="ver">[v1.0.43.03+]</span>: Die interne Variable <strong>A_EventInfo</strong> enthält die Anzahl, wie häufig das Mausrad stufenweise gedreht wurde (üblicherweise 1). Allerdings kann A_EventInfo größer oder kleiner als 1 sein, wenn folgende Bedingungen zutreffen:</p>
<ul>
<li>Wenn die Maus-Hardware Distanzen kleiner als einen Schritt meldet, kann A_EventInfo eine 0 enthalten;</li>
<li>Wenn das Mausrad schnell gedreht wird (abhängig vom Typ der Maus), kann A_EventInfo größer als 1 sein. Mit dem folgenden Hotkey können Sie Ihre Maus analysieren: <code>~WheelDown::ToolTip %A_EventInfo%</code>.</li>
</ul>
<p>Einige der nützlichsten Mausrad-Hotkeys sind solche, die alternative Methoden zum Scrollen eines Fenstertextes bereitstellen. Folgende Hotkey-Paare bewirken beispielsweise, dass das Scrollen horizontal statt vertikal erfolgt, wenn Sie das Mausrad drehen, während Sie die linke <kbd>Strg</kbd>-Taste gedrückt halten:</p>
<pre>~LControl & WheelUp:: <em>; Scrollt nach links.</em>
ControlGetFocus, fcontrol, A
Loop 2 <em>; <-- Erhöhe diesen Wert, um das Scrollen zu beschleunigen.</em>
SendMessage, 0x114, 0, 0, %fcontrol%, A <em>; 0x114 ist WM_HSCROLL und die 0 danach SB_LINELEFT.</em>
return
~LControl & WheelDown:: <em>; Scrollt nach rechts.</em>
ControlGetFocus, fcontrol, A
Loop 2 <em>; <-- Erhöhe diesen Wert, um das Scrollen zu beschleunigen.</em>
SendMessage, 0x114, 1, 0, %fcontrol%, A <em>; 0x114 ist WM_HSCROLL und die 1 danach SB_LINERIGHT.</em>
return</pre>
<p>Da Mausrad-Hotkeys nur Down-Ereignisse (nie Up-Ereignisse) erzeugen, können sie nicht als <a href="#keyup">KeyUp-Hotkeys</a> verwendet werden.</p>
<h2 id="Remarks">Tipps und Hinweise</h2>
<p>Jede Ziffernblocktaste kann umfunktioniert werden, um je nach Status der <kbd>Num</kbd>-Taste zwei verschiedene Hotkey-Subroutinen zu starten. Alternativ kann man eine Ziffernblocktaste auch die gleiche Subroutine starten lassen, egal welchen Status die <kbd>Num</kbd>-Taste aktuell hat. Zum Beispiel:</p>
<pre>NumpadEnd::
Numpad1::
MsgBox, Dieser Hotkey wurde unabhängig vom Status der NUM-Taste ausgelöst.
return</pre>
<p>Wenn der <a href="#Tilde">Tilde-Operator (~)</a> einmal in Verbindung mit einer <a href="#prefix">Präfixtaste</a> gebracht wurde, ändert er das Verhalten dieser Präfixtaste bei allen Kombinationen. Bei den beiden Hotkeys unten würden beispielsweise alle Rechtsklick-Ereignisse beim aktiven Fenster ankommen, obwohl nur eine der Definitionen das Tilde-Zeichen enthält:</p>
<pre>~RButton & LButton::MsgBox Sie haben die linke Maustaste gedrückt`, während Sie die Rechte gedrückt hielten.
RButton & WheelUp::MsgBox Sie haben das Mausrad nach oben gedreht`, während Sie die rechte Maustaste gedrückt hielten.</pre>
<p>Der <a href="commands/Suspend.htm">Suspend</a>-Befehl kann vorübergehend alle Hotkeys deaktivieren, außer Hotkeys, die Sie gezielt ausgeschlossen haben. Mit <a href="commands/_IfWinActive.htm">#IfWinActive/Exist</a> kann man besser abstimmen, welche Hotkeys wann und wo aktiv sein sollen.</p>
<p>Mithilfe des <a href="commands/Hotkey.htm">Hotkey</a>-Befehls können Hotkeys dynamisch erstellt werden, während das Skript läuft. Der Hotkey-Befehl kann zudem bereits existierende Hotkeys einzeln bearbeiten, deaktivieren oder aktivieren.</p>
<p>Aktuell unterstützen Joystick-Hotkeys keine Modifikatorpräfixe wie ^ (<kbd>Strg</kbd>) und # (<kbd>Win</kbd>). Allerdings kann dieser Effekt mit <a href="commands/GetKeyState.htm">GetKeyState</a> nachgeahmt werden:</p>
<pre>Joy2::
if not GetKeyState("Control") <em>; Weder die linke noch die rechte STRG-Taste ist unten.</em>
return <em>; also nichts tun.</em>
MsgBox Sie haben die zweite Taste des ersten Joysticks gedrückt`, während Sie die STRG-Taste gedrückt hielten.
return</pre>
<p>Manchmal ist es sinnvoll, dass ein Hotkey erst ausgelöst werden soll, wenn seine Modifikatortasten wieder oben sind. Schauen Sie sich dazu das folgende Beispiel an:</p>
<pre>^!s::Send {Delete}</pre>
<p>Wenn man in diesem Fall <kbd>Strg</kbd>+<kbd>Alt</kbd>+<kbd>S</kbd> drückt, wird das System fälschlicherweise ein <kbd>Strg</kbd>+<kbd>Alt</kbd>+<kbd>Entf</kbd> erkennen (aufgrund der aggressiven Erkennung von <kbd>Strg</kbd>+<kbd>Alt</kbd>+<kbd>Entf</kbd>). Um das zu umgehen, können Sie <a href="commands/KeyWait.htm">KeyWait</a> verwenden, um auf das Loslassen der Tasten zu warten; zum Beispiel:</p>
<pre>^!s::
KeyWait Control
KeyWait Alt
Send {Delete}
return</pre>
<p>Wenn ein Hotkey wie z. B. <code>#z::</code> den Fehler "Invalid Hotkey" (ungültiger Hotkey) erzeugt, ist es sehr wahrscheinlich, dass das betroffene Zeichen ("Z" in diesem Fall) in der Tastaturbelegung/Sprache Ihres Systems fehlt. Versuchen Sie es mit einem Zeichen, das auf Ihrer Tastaturbelegung zu finden ist.</p>
<p>Ein Hotkey-Label kann als Ziel von <a href="commands/Gosub.htm">Gosub</a> oder <a href="commands/Goto.htm">Goto</a> angegeben werden. Zum Beispiel: <code>Gosub ^!s</code>.</p>
<p>Häufig werden Hotkeys dazu verwendet, eine wiederholende Aktion, z. B. eine Reihe von Tastendrücken oder Mausklicks, zu starten und zu stoppen. Ein Beispiel dazu findet man in den <a href="FAQ.htm#repeat">Häufig gestellten Fragen (FAQ)</a>.</p>
<p>Jedes Skript kann quasi aus <a href="misc/Threads.htm">mehreren Threads</a> bestehen, dadurch ist es möglich, dass ein neuer Hotkey gestartet werden kann, während eine andere Hotkey-Subroutine noch läuft. Neue Hotkeys können jederzeit ausgelöst werden, egal ob ein anderer Hotkey beispielsweise eine <a href="commands/MsgBox.htm">MsgBox</a> anzeigt.</p>
<h2 id="AltTabDetail">Alt-Tab-Hotkeys</h2>
<p>Jeder Alt-Tab-Hotkey muss aus zwei Tasten bestehen, die mithilfe eines Und-Zeichens (&) kombiniert wurden. Das folgende Beispiel zeigt, wie man mit der rechten <kbd>Alt</kbd>-Taste und den Tasten <kbd>J</kbd> oder <kbd>K</kbd> im Alt-Tab-Menü navigieren kann:</p>
<pre>RAlt & j::AltTab
RAlt & k::ShiftAltTab</pre>
<p><em>AltTab</em> und <em>ShiftAltTab</em> gehören zu speziellen Befehlen, die nur erkannt werden, wenn sie in Verbindung mit einem einzeiligen Hotkey benutzt werden. Hier die komplette Liste:</p>
<p><strong>AltTab</strong>: Navigiert im Alt-Tab-Menü nach rechts, sofern das Menü sichtbar ist. Ansonsten wird das Menü geöffnet (nur wenn der Hotkey aus zwei mit "&" kombinierten Tasten besteht, sonst passiert nichts).</p>
<p><strong>ShiftAltTab</strong>: Das gleiche wie oben, aber in die andere Richtung.</p>
<p><strong>AltTabMenu</strong>: Zeigt oder versteckt das Alt-Tab-Menü.</p>
<p><strong>AltTabAndMenu</strong>: Navigiert im Alt-Tab-Menü nach rechts, sofern das Menü sichtbar ist. Ansonsten wird das Menü geöffnet.</p>
<p><strong>AltTabMenuDismiss</strong>: Schließt das Alt-Tab-Menü.</p>
<p>Zum Beispiel wäre es möglich, die Alt-Tab-Prozedur mit dem Mausrad durchzuführen. Wenn die folgenden Hotkeys aktiv sind, kann das Menü mit der mittleren Maustaste geöffnet und mit dem Mausrad durchgeschaltet werden:</p>
<pre>MButton::AltTabMenu
WheelDown::AltTab
WheelUp::ShiftAltTab</pre>
<p>Mit einem Hotkey wie der Folgende kann ein via Hotkey aufgerufenes Alt-Tab-Menü geschlossen werden, ohne dass das ausgewählte Fenster aktiviert werden muss. Möglicherweise sind Anpassungen notwendig, je nachdem: 1) womit das Alt-Tab-Menü ursprünglich geöffnet wurde; und 2) ob das Skript den <a href="commands/_InstallKeybdHook.htm">Tastatur-Hook</a> installiert hat.</p>
<pre>LCtrl & CapsLock::AltTab
<strong>!</strong>MButton:: <em>; Mittlere Maustaste. Das <strong>!</strong>-Präfix bewirkt, dass der Hotkey nur ausgelöst werden kann, wenn die ALT-Taste unten ist (das in der Regel der Fall ist, wenn das Alt-Tab-Menü sichtbar ist).</em>
if WinExist("ahk_class #32771") <em>; Setzt voraus, dass das Alt-Tab-Menü auf dem Bildschirm vorhanden ist.</em>
Send <strong>!</strong>{Escape}{Alt up}
return</pre>
<p>Zurzeit müssen alle speziellen Alt-Tab-Aktionen direkt einem Hotkey wie oben zugewiesen werden (das heißt, dass sie nicht wie Befehle behandelt werden können). Sie werden <span class="red">nicht von <a href="commands/_IfWinActive.htm">#IfWin</a> oder <a href="commands/_If.htm">#If</a> beeinflusst</span>.</p>
<p>Benutzerdefinierte Alt-Tab-Aktionen können auch via Hotkeys erstellt werden. Das folgende Beispiel zeigt, wie man mit <kbd>F1</kbd> das Menü öffnen und durchschalten kann und wie man mit <kbd>F2</kbd> das ausgewählte Fenster aktivieren kann (oder wie man mit <kbd>Esc</kbd> das Menü schließen kann):</p>
<pre>*F1::Send {Alt down}{tab} <em>; Sternchen ist in diesem Fall notwendig.</em>
!F2::Send {Alt up} <em>; Lässt die ALT-Taste los, um das ausgewählte Fenster zu aktivieren.</em>
~*Escape::
if WinExist("ahk_class #32771")
Send {Escape}{Alt up} <em>; Schließt das Menü, ohne das ausgewählte Fenster zu aktivieren.</em>
return</pre>
<h2 id="Function">Funktions-Hotkeys <span class="ver">[v1.1.20+]</span></h2>
<p>Es ist möglich, einem oder mehreren Hotkeys eine <a href="Functions.htm">Funktion</a> zuzuweisen, indem man sie einfach unterhalb des Hotkey-Labels definiert. Zum Beispiel:</p>
<pre><em>; STRG+UMSCHALT+O, um den enthaltenen Ordner im Explorer zu öffnen.
; STRG+UMSCHALT+E, um den Ordner zu öffnen und darin die aktuelle Datei zu markieren.
; Unterstützt SciTE und Notepad++.</em>
^+o::
^+e::
editor_ordner_öffnen() {
WinGetTitle, pfad, A
if RegExMatch(pfad, "\*?\K(.*)\\[^\\]+(?= [-*] )", pfad)
if (FileExist(pfad) && A_ThisHotkey = "^+e")
Run explorer.exe /select`,"%pfad%"
else
Run explorer.exe "%pfad1%"
}</pre>
<p id="function-details"><span class="ver">[v1.1.28+]:</span> Hotstrings können auch auf diese Weise definiert werden. Mehrere Hotkeys oder Hotstrings können übereinander gestapelt werden, um die gleiche Funktion aufzurufen.</p>
<p>Es dürfen nur Leerraumzeichen, Kommentare oder Direktiven zwischen den Hotkey/Hotstring-Labels oder dem Label und der Funktion vorkommen. Hotkey/Hotstring-Labels, die auf diese Weise definiert werden, können nicht in Verbindung mit <a href="commands/IsLabel.htm">IsLabel()</a>, <a href="commands/Gosub.htm">Gosub</a> oder anderen Befehlen genutzt werden; allerdings endet der <a href="Scripts.htm#auto">automatische Ausführungsbereich</a> beim ersten Hotkey, selbst wenn ihm eine Funktion zugewiesen wurde.</p>
<p>Das Verwenden einer Funktion hat den Vorteil, dass lokale Variablen verwendet werden können, um so Konflikte zu vermeiden, wenn zwei oder mehr Hotkeys die gleichen Variablennamen für unterschiedliche Zwecke verwenden. Außerdem fördert es selbstdokumentierende Hotkeys; im Code oben beschreibt der Funktionsname zum Beispiel den Hotkey.</p>
<p>Mit dem <a href="commands/Hotkey.htm">Hotkey</a>-Befehl kann einem Hotkey auch eine Funktion oder ein Funktionsobjekt zugewiesen werden.</p>
</body>
</html>