Тема: AHK: исключение клавиш из A_TimeIdlePhysical
Добрый день.
Прошу вашей помощи. Больше не к кому обратиться.
Цель скрипта - поиск по координатам цвета, и в зависимости от цвета нажимается кнопка 1 или 2.
Если нажата любая кнопка - скрит приостанавливается.
Вопрос как исключить кнопки - w a s d из A_TimeIdlePhysical или возможно есть какое то другое решение?
То есть при нажатых w или a или s или d скрипт продолжал работать, он если нажата любая другая клавиша то ожидание и перезапуск sleep c 0
1)
#InstallKeybdHook
p1 := [700, 310, 700, 310, 0xFFFFFF, 1]
p2 := [650, 253, 739, 299, 0x000000, 2]
SetTimer, CheckActivity, 100
Exit
CheckActivity:
loop
{
loop 2
{
PixelSearch, Px, Py, p%A_Index%[1], p%A_Index%[2], p%A_Index%[3] , p%A_Index%[4], p%A_Index%[5], 3, Fast
if !errorlevel and (A_TimeIdlePhysical > 200) and !GetKeyState("wasd", "p")
{
send % p%A_Index%[6]
break
}
}
}
return
2) Тут получилось сделать данную проверку, но если зажата - допустим "w" и "e" скрипт не уходит в sleep.
InstallKeybdHook
p1 := [700, 310, 700, 310, 0xFFFFFF, 1]
p2 := [650, 253, 739, 299, 0x000000, 2]
SetTimer, CheckActivity, 100
Exit
CheckActivity:
loop
{
if(A_TimeIdlePhysical < 200) and !(GetKeyState("w", "p")) and !(GetKeyState("a", "p")) and !(GetKeyState("s", "p")) and !(GetKeyState("d", "p"))
{
sleep 750
}
else
{
loop 4
{
PixelSearch, Px, Py, p%A_Index%[1], p%A_Index%[2], p%A_Index%[3] , p%A_Index%[4], p%A_Index%[5], 3, Fast
if !errorlevel
{
send % p%A_Index%[6]
break
}
}
}
}
return
3) Так же думал осуществить данную задачу со сбросом Sleep таймера и началом его заново, при нажатии клавиши.
Но не могу понять какие команды необходимо использовать.
if GetKeyState("w", "p")
Sleep 1000
если нажата еще раз, сбросить sleep до 0 и опять начать отсчет Sleep до 1000.