1 (изменено: qtongo, 2017-07-21 12:45:11)

Тема: AHK: Цикл комбинаций

Хочу зациклить все клавиши и комбинации клавиш с шифтом, проблема конкретно с комбинациями, т.к. если прописать цикл, например, для shift+q в таком виде:

{
$+q::
Loop 
{
if not GetKeyState("q", "P")
break
Send +q
sleep 50
}
return
}

То при зажатии этой комбинации скрипт выдает shift+q shift+q shift+q shift+q, а нужно, чтобы выдавал shift+qqqqqqqqq

2

Re: AHK: Цикл комбинаций

Зажми шифт до активации цикла, а в цикле пусть просто ку нажимается.

Когда вы говорите что не можете сделать, вам всего-лишь не хватает фантазии придумать какой-нибудь костыль.

3

Re: AHK: Цикл комбинаций

belyankin12
Можешь написать, как это должно выглядеть? У меня не получилось

4

Re: AHK: Цикл комбинаций

Доброго времени суток. Попробуйте так.

~*$vk51:: ;Q
  while GetKeyState("vkA0","P") 
{
DllCall("keybd_event", UInt, 0xA0, Int, 0, Int, 0x0001, UInt, 0, Int, 0)  ; нажать клавишу shift

DllCall("keybd_event", UInt, 0xA0, Int, 0, Int, 0x0002, UInt, 0, Int, 0) ;  отпустить клавишу shift

DllCall("keybd_event", UInt, 0x51, Int, 0, Int, 0x0001, UInt, 0, Int, 0) ; нажать клавишу Q

DllCall("keybd_event", UInt, 0x51, Int, 0, Int, 0x0002, UInt, 0, Int, 0)  ; отпустить клавишу Q

DllCall("Sleep", UInt, 50) ;
}
return
OS: Win7x64, AutoHotkey v1.1.25.01 (Unicode 64-bit).

5

Re: AHK: Цикл комбинаций

Ядрён
Но тогда цикл q без шифта не работает

6

Re: AHK: Цикл комбинаций

qtongo,

$+q::
Sendinput {Shift} (или {Shift down}, если шифт зажать нужно)
Loop 
{
if not GetKeyState("q", "P")
break
Send +q
sleep 50
}
Sendinput {Shift Up} (если шифт даун использовал)
return
Когда вы говорите что не можете сделать, вам всего-лишь не хватает фантазии придумать какой-нибудь костыль.

7

Re: AHK: Цикл комбинаций

belyankin12
Большое спасибо, то что надо