Wie kombiniert man drei Tasten als Hotkey mit Autohotkey?

14

Ich möchte CapsLock Alt kTasten in einer einzigen Tastenkombination kombinieren , z.

CapsLock & !k:: Send !{Up}

Dies funktioniert nicht, da Autohotkey die Kombination von mehr als zwei Tasten mit Ausnahme der Modifizierertasten nicht zulässt.

Auf der Suche nach einer Lösung habe ich herausgefunden, dass die Verwendung von Scan-Codes auf der linken Seite eine Umgehung sein kann, wie zum Beispiel:

SC035 & !k:: Send !{Up}

Ich habe diese Lösung auch getestet, aber das funktioniert auch nicht richtig. In diesem Fall wird durch Drücken CapsLock+kder Taste der Hotkey ausgelöst.

Mert Nuhoglu
quelle
(In AutoHotkey ist Ctrl ^, Alt ist !. Sie können klären, welche Sie möchten.)
Bavi_H
Ich habe den Fehler korrigiert.
Mert Nuhoglu

Antworten:

13

Wie wäre es damit?

Capslock & k:: 
GetKeyState, state, Alt
if state = D
SendInput !{Up}
Return 
snitzr
quelle
Vielen Dank. Das funktioniert wirklich. Bei der Verwendung von CapsLock in Kombination mit einer Taste, z. B. "CapsLock & a :: =", tritt jetzt eine leichte Verzögerung auf. Diese Verzögerung ist wahrscheinlich auf die GetKeyState-Funktion zurückzuführen, nicht wahr?
Mert Nuhoglu
Ich habe diese Verzögerung getestet, konnte sie jedoch nicht wiederherstellen. Das Skript sollte eigenständig sein und die Leistung anderer Skripts nicht beeinträchtigen. Skripts mit GetKeyState zum Hinzufügen eines dritten Hotkeys (wie das oben beschriebene) verhalten sich nicht genau wie Skripts mit normalen Hotkey-Setups und verhindern möglicherweise, dass das Skript so schnell wie üblich wiederholt wird. Ich hoffe, das hilft.
Snitzr
3
Ich bevorzuge diese präzisere Syntax und dachte, ich würde sie mit Ihnen teilen: Wenn nicht, GetKeyState ("Alt", "P") ... Ändern Sie sie entsprechend Ihren Anforderungen. Prost.
Mario Awad