Das auf dieser Seite beschriebene Feature wird nicht auf Windows 95/98/Me oder für Joysticks unterstützt. Siege die folgenden Alternativ-Methoden:
Einschränkung : Das nachfolgend beschriebene Remapping per AutoHotkey ist im Allgemeinen nicht so effektiv wie das Remapping per Registry. Vor- und Nachteile für jeden Ansatz siehe unter Remapping per Registry.Die Syntax für das eingebaute Remapping ist Originaltaste::Zieltaste. Ein Script, das nur aus der folgenden Zeile besteht, gibt der Taste "a" das gleiche Verhalten wie der Taste "b":
a::b
Das obige Beispiel läßt die Taste "b" selber unverändert; sie sendet weiterhin das "b", bis ihr eine andere Aktion zugewiesen wird, wie im folgenden Beispiel:
a::b
b::a
Die in den obigen Beispielen verwendete Kleinschreibung ist für die meisten Zwecke zu empfehlen, weil sie auch die entsprechenden großgeschriebenen Buchstaben umbelegt (d. h., sie sendet bei eingeschaltetem Capslock oder gedrückter Shift-Taste den Buchstaben großgeschrieben). Durch Angabe eines Großbuchstaben auf der rechten Seite wird dagegen die Großschrift erzwungen. Die folgende Zeile würde z. B. ein großes "B" senden, wenn Sie entweder "a" oder "A" tippen (solange Capslock ausgeschaltet ist):
a::B
Umbelegung der Maus : Für die Umbelegung der Maus verwenden Sie den selben Ansatz wie bei der Tastatur. Beispiel:
| MButton::Shift | Die mittlere Maustaste verhält sich wie die Shift-Taste. |
| XButton1::LButton | Die vierte Maustaste verhält sich wie die linke Maustaste. |
| RAlt::RButton | Die rechte Alt-Taste verhält sich wie die rechte Maustaste. |
Andere nützliche Umbelegungen:
| Capslock::Ctrl | Capslock wird zur Strg-Taste. Um die Fähigkeit zu behalten Capslock ein- und auszuschalten füge auch folgende Umbelegung hinzu: +Capslock::Capslock (dies wechselt zwischen den Capslock-Zuständen "Ein" und "Aus", wenn du bei gedrückter Shift-Taste Capslock betätigst). |
| XButton2::^LButton | Die fünfte Maustaste (XButton2) erzeugt einen Strg-Links-Tastendruck. |
| RAlt::AppsKey | Die rechte Alt-Taste wird zur Kontextmenü-Taste. |
| RCtrl::RWin | Die rechte Strg-Taste wird zur rechten Windows-Taste. |
| Ctrl::Alt | Beide Strg-Tasten verhalten sich wie eine Alt-Taste. Siehe auch Alt-Tab-Probleme. |
| ^x::^c | Strg-X erzeugt Strg-C. Ebenso erzeugt Strg-Alt-X Strg-Alt-C, usw. |
| RWin::Return | Macht die rechte Windows-Taste zu Return (und deaktiviert damit ihre ursprüngliche Funktion). |
Sie können alle Beispiele ausprobieren, indem Sie sie in eine neue Textdatei wie "Remap.ahk" kopieren und dann die Datei ausführen.
Für eine vollständige Liste der Tasten-Namen von Tastatur und Maus siehe Tasten-Liste.
Mit den Anweisungen #IfWinActive/Exist lassen sich ausgewählte Umbelegungen auf von Ihnen angegebene Fenster beschränken. Beispiel:
#IfWinActive ahk_class Notepad
a::b ; Die Taste 'a' sendet eine 'b'-Taste, aber nur in Notepad.
#IfWinActive ; Die nachfolgenden Umbelegungen und Hotkeys gelten für alle Fenster.
Eine Taste wird eins zu eins umbelegt; d. h.:
a::b
^!a::
^!b::
ToolTip Sie haben %A_ThisHotkey% gedrückt.
return
Wenn SendMode im Auto-Execute-Bereich (am Anfang des Scripts) benutzt wird, beeinflusst es alle Umbelegungen. Weil jedoch das Remapping Send {Blind} verwendet und SendPlay Modus {Blind} nicht komplett unterstützt, funktionieren evtl. im SendPlay Modus einige Umbelegungen nicht fehlerfrei (speziell Strg, Shift, Alt und Win). Um dies zu umgehen, vermeiden Sie SendPlay im Auto-Execute-Bereich, wenn Sie Umbelegungen haben; verwenden Sie dann im Script durchgehend den Befehl SendPlay statt Send. Alternativ dazu könnten Sie Ihre Umbelegungen in Hotkeys übersetzen (wie unten beschrieben), die explicit SendEvent statt Send aufrufen.
Nach dem Start eines Scripts wird jede Umbelegung in ein Hotkey-Paar übersetzt. Zum Beispiel enthält ein Script mit a::b genau genommen stattdessen die folgenden beiden Hotkeys:
*a::
SetKeyDelay -1 ; Bei einer Maustaste als Ziel wird stattdessen SetMouseDelay verwendet.
Send {Blind}{b DownTemp} ; DownTemp ist wie Down, mit der Ausnahme, dass nachfolgende Send-Befehle im Script das "b" als nicht (mehr) gedrückt ansehen.
return
*a up::
SetKeyDelay -1 ; Warum die Drück-Dauer mit keinem dieser SetKeyDelays angegeben ist, siehe die Anmerkung weiter unten.
Send {Blind}{b Up}
return
Die obigen Hotkeys können sich aber unter folgenden Umständen ändern:
*RCtrl::
SetMouseDelay -1
if not GetKeyState("RButton") ; Sprich: die rechte Maustaste ist noch nicht gedrückt.
Send {Blind}{RButton DownTemp}
return
Beachten Sie, dass der zweite Parameter von SetKeyDelay (Drück-Dauer) in den obigen Hotkeys entfällt. Das liegt daran, dass die Drück-Dauer nicht bei Zustandswechsel-Ereignissen angewendet wird, wie z. B. {b down} und {b up}. Allerdings gilt sie für Zustandswechsel der Shift/Strg/Alt/Win-Tasten, welche Umbelegungen wie z.B. a::B oder a::^b beeinflussen. Dementsprechend gilt eine im Auto-Execute-Bereich angegebene Drückdauer für alle solche Umbelegungen.
Ein Tastenpaar kann zwar nicht direkt in eine einzelne Taste umbelegt werden (z.B. ist a & c::b ungültig), dieser Effekt lässt sich aber durch explizites Hinzufügen der Up- und Down-Hotkeys aus dem obigen Beispiel erreichen: Ersetzen Sie einfach *a:: durch a & c:: und *a up:: durch a & c up::.
Weil Umbelegungen - wie oben beschrieben - in Hotkeys umgewandelt werden, wirkt sich der Suspend-Befehl auf sie aus. Gleichermaßen kann der Hotkey-Befehl eine Umbelegung sperren oder ändern. Zum Beispiel sperren die folgenden beiden Befehle die Umbelegung a::b.
Hotkey, *a, off
Hotkey, *a up, off
Alt-Tab-Fragen: Wenn Sie eine Tastatur- oder Maustaste in eine Alt-Taste umbelegen, wird mit dieser Taste Alt-Tab wahrscheinlich nicht funktionieren. Dies lässt sich unter anderem durch Hinzufügen des Hotkeys *Tab::Send {Blind}{Tab} umgehen - aber seien Sie sich bewusst, dass er voraussichtlich die Verwendung der echten Alt-Taste für Alt-Tab beeinflusst. Er sollte daher nur eingesetzt werden, wenn Sie Alt-Tab nur durch umbelegte Tasten und/oder Alt-Tab-Hotkeys erzeugen.
Neben den Tasten in der Tasten-Liste kann die Original-Taste auch eine virtuelle Taste (VKnn) oder ein Scan-Code (SCnnn) sein, siehe Spezial-Tasten. Dasselbe gilt für die Ziel-Taste, außer dass sie optional einen Scan-Code nach der virtuellen Taste angeben kann. sc01e::vk42sc030 ist beispielsweise auf den meisten Tastaturen äquivalent zu a::b.
Um eine Taste zu sperren statt sie umzubelegen, machen Sie daraus den Hotkey Return. F1::Return würde z. B. die Taste F1 sperren.
Die folgenden Tasten werden vom Remapping nicht unterstützt:
Wie sich mit der Tastatur der Maus-Zeiger bewegen lässt, zeigt das voll funktionsfähige Keyboard-To-Mouse-Skript. Weil das Skript flüssige Zeigerbewegungen, Beschleunigung und andere Features bietet, ist dieser Ansatz zu empfehlen, wenn Sie viele Mausbewegungen mit der Tastatur planen. Das folgende Beispiel ist dagegen eine einfache Demonstration:
*#up::MouseMove, 0, -10, 0, R ; Win+UpArrow Hotkey => Zeiger nach oben bewegen
*#Down::MouseMove, 0, 10, 0, R ; Win+DownArrow => Zeiger nach unten bewegen
*#Left::MouseMove, -10, 0, 0, R ; Win+LeftArrow => Zeiger nach links bewegen
*#Right::MouseMove, 10, 0, 0, R ; Win+RightArrow => Zeiger nach rechts bewegen
*<#RCtrl:: ; LeftWin + RightControl => Links-Klick (für Strg-Klick oder Shift-Klick Strg oder Shift gedrückt halten).
SendEvent {Blind}{LButton down}
KeyWait RCtrl ; Verhindert, dass durch Auto-Repeat Maus-Klicks wiederholt werden.
SendEvent {Blind}{LButton up}
return
*<#AppsKey:: ; LeftWin + AppsKey => Rechts-Klick
SendEvent {Blind}{RButton down}
KeyWait AppsKey ; Verhindert, dass durch Auto-Repeat Maus-Klicks wiederholt werden.
SendEvent {Blind}{RButton up}
return
Vorteile:
Es ist die Verwendung von Send und KeyWait zu empfehlen. Zum Beispiel macht der folgende Hotkey das "a" zur linken Pfeil-Taste:
a::
Send {Left down} ; Linke Pfeil-Taste gedrückt halten.
KeyWait a ; Auf das Loslassen der Taste warten.
Send {Left up} ; Linke Pfeil-Taste loslassen.
return