Jak połączyć trzy klawisze jako skrót klawiszowy z Autohotkey?

14

Chcę łączyć CapsLock Alt kklucze w jeden skrót klawiszowy, taki jak ten:

CapsLock & !k:: Send !{Up}

To nie działa, ponieważ Autohotkey nie pozwala na kombinację więcej niż dwóch klawiszy oprócz klawiszy modyfikujących.

W poszukiwaniu rozwiązania dowiedziałem się, że użycie kodów skanowania po lewej stronie może być obejściem, na przykład:

SC035 & !k:: Send !{Up}

Testowałem też to rozwiązanie, ale to też nie działa poprawnie. W takim przypadku naciśnięcie CapsLock+kpowoduje uruchomienie klawisza skrótu.

Mert Nuhoglu
źródło
(W AutoHotkey Ctrl jest ^, Alt jest !. Możesz wyjaśnić, który z nich chcesz.)
Bavi_H
Poprawiłem błąd.
Mert Nuhoglu,

Odpowiedzi:

13

Co powiesz na to?

Capslock & k:: 
GetKeyState, state, Alt
if state = D
SendInput !{Up}
Return 
snitzr
źródło
Dziękuję Ci. To działa naprawdę. Ale teraz występuje niewielkie opóźnienie przy korzystaniu z CapsLock w połączeniu z kluczem, takim jak „CapsLock i a :: =”. To opóźnienie jest prawdopodobnie spowodowane funkcją GetKeyState, prawda?
Mert Nuhoglu,
Testowałem, ale nie mogłem odtworzyć tego opóźnienia. Skrypt powinien być samodzielny i nie wpływać na wydajność innych skryptów. Skrypty, które mają GetKeyState w celu dodania trzeciego klawisza skrótu (takiego jak ten, który mam powyżej), nie będą zachowywać się dokładnie tak jak skrypty z normalnymi ustawieniami klawiszy skrótu i ​​mogą uniemożliwić powtarzanie skryptu tak szybko, jak zwykle. Mam nadzieję, że to pomaga.
snitzr
3
Wolę tę bardziej zwięzłą składnię i pomyślałem, że podzielę się nią: jeśli nie GetKeyState („Alt”, „P”) ... Zmodyfikuj zgodnie z własnymi potrzebami. Twoje zdrowie.
Mario Awad