1

Тема: AHK: отключение While GetKeyState

Что только не перепробовал. Суть такая, когда зажал Правый альт, он начинает флудить нужный мне текст, и по нажатию
на другую кнопку, должен отжаться Правый альт.


Z::
; код который должен отжать RAlt (желательно что бы код был именно тут)
Return

Ralt::
While GetKeyState("Ralt", "P")
{
Send, Нужный мне текст
}
Return

2

Re: AHK: отключение While GetKeyState

А если просто отпустить её?

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

3

Re: AHK: отключение While GetKeyState

teadrinker Это не вся часть скрипта просто, это я так для примера написал. Вообще его суть, когда я зажимаю альт, он выполняет нужные мне действия, но как только ему придет информация об отключении флуда, я просто банально не успею отпустить. И мне это важно очень. Надеюсь поможете.

4

Re: AHK: отключение While GetKeyState

Проще по нажатию другой клавиши прекращать действие, привязанное к Alt, чем отжимать её.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

5

Re: AHK: отключение While GetKeyState

teadrinker Это как сделать то?

6 (изменено: teadrinker, 2017-07-14 21:30:06)

Re: AHK: отключение While GetKeyState

По-простому не вышло.

DllCall("SetWindowsHookEx"
   , Int, WH_KEYBOARD_LL := 13
   , Ptr, RegisterCallback("LowLevelKeyboardProc", "Fast")
   , Ptr, DllCall("GetModuleHandle", UInt, 0, Ptr)
   , UInt, 0, Ptr)

Ralt::
While mode != "Off" && GetKeyState("Ralt", "P")
{
   Send, Нужный мне текст
}
Return

LowLevelKeyboardProc(nCode, wParam, lParam)  {
   global mode
   static WM_KEYDOWN := 0x100, WM_KEYUP := 0x104, WM_SYSKEYUP := 0x105
   
   msg := wParam
   vk := NumGet(lParam + 0, "UInt")
   
   if ( msg = WM_KEYDOWN && vk = 0x5A )  {
      mode := "Off"
      Return 1
   }
   ( (msg = WM_SYSKEYUP || msg = WM_KEYUP) && vk = 0xA5 && mode := "On" )
   Return DllCall("CallNextHookEx", Ptr, 0, Int, nCode, Ptr, wParam, Ptr, lParam)
}

При нажатии на Z цикл прекращается.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Skype dmitry_fiveg

7

Re: AHK: отключение While GetKeyState

teadrinker Спасибо дядь!