1 (изменено: Даниил Максимович, 2020-05-27 09:20:59)

Тема: AHK: По нажатию одной клавиши, открываются команды для других клавиш.

Доброго времени суток! Подскажите пожалуйста, как по нажатию клавиши " LAlt " открыть доступ к другим командам ?
Т.е. Я хочу сделать двойное нажатие клавиш "W, A, S, D", но двойное нажатие этих клавиш должно происходить одиночно (т.е., если я нажму на W, будет двойное нажатие только W )  и только тогда, когда нажата( не зажата) клавиша " LAlt ", если же я снова нажму на "LAlt", то тогда при нажатии W будет печататься одна W, вместо двух.

2

Re: AHK: По нажатию одной клавиши, открываются команды для других клавиш.

А если Вы нажали и отпустили "LAlt", а после этого нажали какую-нибудь клавишу кроме "W, A, S, D"? Тогда режим двойного нажатия должен ожидать нажатия клавиш из перечня "W, A, S, D" или режим двойного нажатия должен отключится?

3

Re: AHK: По нажатию одной клавиши, открываются команды для других клавиш.

Попробуйте так:

#UseHook
LAlt::
ToggleHotkeys(mode := "") {
   static t, handler
   (!handler && handler := Func(A_ThisFunc).Bind(true))
   if mode {
      Send, {%A_ThisHotkey% 2}
      KeyWait, %A_ThisHotkey%
   }
   else {
      t := !t
      for k, v in ["w", "a", "s", "d"]
         Hotkey, % v, % handler, % t ? "On" : "Off"
   }
}
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg