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.


(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 

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
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.