1 (изменено: harbor, 2024-10-28 12:57:27)

Тема: AHK: автобег на LShift+W в DayZ

Делаю скрипт на автобег по нажатию кнопки z(vk5A):


vk5A::
    If isKeyPressed := !isKeyPressed    
        SetTimer, SendA, 40            
    Else
    {
        SetTimer, SendA, Off    
        Send {vk57 Up}        ; отпускаем w         
        Send {vkA0 Up}        ; отпускаем LSHift
    }
    KeyWait vk5A                      
    return

SendA:
    Send {vkA0 Down} ;нажимаем LSHift
    Send {vk57 Down} ;нажимаем w
    return

Нажатие срабатывает, а вот отпускать не хочет, что я делаю не так?
Нужен именно левый шифт,  вариант  Send +{vk57 Up} не работает в игре.
Синтаксис вида Send <+{vk57 Up} тоже не работает.

2 (изменено: harbor, 2024-10-28 12:56:37)

Re: AHK: автобег на LShift+W в DayZ

Пока сделал так, вроде работает, хотя в игре немного косячно работает если при автобеге крутить головой через Alt:

vk5A::        
               Loop {
        	  	Send, {vkA0 down}{vk57 down}
        		Sleep 100
     		    If  GetKeyState("z")
				break 
				}	
		       
        Send, {vk57 up}{vkA0 up}
		    
return

Осталось сделать, чтобы скрипт работал только при запущенном окне игры.

3 (изменено: harbor, 2024-10-28 12:56:03)

Re: AHK: автобег на LShift+W в DayZ

Странно, но все попытки проверки на окно игры не работают:
if WinExist("ahk_class Dayz")
IfWinActive, Dayz
хотя Spy дает именно такие данные.