Тема: AHK: Зажатие кнопки W
Подскажите пожалуйста скрипт, чтоб при нажатии кнопки Q, зажималась кнопка W. При повторном нажатии на Q кнопка W отжималась-бы.
(Нужно в играх)
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Подскажите пожалуйста скрипт, чтоб при нажатии кнопки Q, зажималась кнопка W. При повторном нажатии на Q кнопка W отжималась-бы.
(Нужно в играх)
stat=0
й::
if stat=0
{
send,{ц down}
stat=1
}
else
{
send,{ц up}
stat=0
}
return
Или же можно так.
й::
send,{ц down}
return
В обоих вариантах при нажатии на ц,кнопка отпускается.
stat=0
й::
if stat=0
{
settimer,Press
stat=1
}
else
{
settimer,press,stop
send,{ц up}
stat=0
}
return
Press:
send,{ц down}
return
В данном варианте работа через таймер.
vk51:: SendInput % "{vk57 " ((T := !T) ? "Down" : "Up") "}"
vk51:: SendInput % "{vk57 " ((T := !T) ? "Down" : "Up") "}"
Почему то вашь код отличается от моего.Странно.
letopisec
Что-то неработает?
letopisec
Что-то неработает?
Да нет,притензий нету,да и не я топик стартер. Просто я привык писать громоздко,в плане кода.
Просто я привык писать громоздко,в плане кода.
Ну если вам так удобно, почему бы и нет.
Спасибо огромное вам! Оба варианта работают!!!
Не хотелось бы плодить темы, у меня не получается заставить при нажатии q нажиматься f1.
Игра Nox. В ней не срабатывает эта программа, хотя вне ее ( в системе) хатки работают.
Я ставил $ перед буквой q, но не помогало и это. Пробовал вместо send использовать SendInput, но тоже самое, в игре не работает.
Q::
send,{f1}
return
даже так не срабатывает.
Q::send{f1}
Подскажите пожалуйста что я не делаю не так.
А если так? SendPlay ещё можете попробовать.
Q::
Send, {F1 down}
Sleep, 50
Send, {F1 up}
Return
Попробовал, не помогло. И повышал приоритет процесса, и биндил на другие клавиши, проверял что бы в игре этих биндов не было. Игра как то перехватыват железно, может есть путь это обойти другим способом?
Мне только нужно что бы при нажатии одной кнопки нажималась другая. Потому что игра принимает только родную команду bind и только для F1 - F12.
Даже "vk51 — виртуальный код клавиши Q-Й в шестнадцатеричном формате" использовал.
А каким образом можно задать активное окно? Может хатки просто не видит его.
Версию программы скачал только что с офф сайта.
С указанием окна ControlSend попробуйте.
ControlSend,, {F1}, WinTitle
; Или так:
ControlSend, ahk_parent, {F1}, WinTitle
Пробовал и так
vk51::ControlSend, ahk_parent, {F1}, WinTitle NOX
и так
vk51::ControlSend,, {F1}, WinTitle NOX
Иконка "H" в трее горит, но в игре нет реакции. Пути к скрипту проверил, грузится именно он.
Даже пробовал по процессу активировать
SetTimer, KeepRunning
KeepRunning:
WinGet, szProcessName, ProcessName, A
if szProcessName = Game.exe
{
Suspend, off
}
else
{
Suspend, on
}
return
Но увы.
Пробовал и так
vk51::ControlSend, ahk_parent, {F1}, WinTitle NOX
Что значит "NOX" и что содержит переменная "WinTitle"?
Если название окна NOX, то нужно так:
vk51::ControlSend,, {F1}, NOX
Да, NOX это название окна.
Попробовал новый вариант, но почему то все равно не откликается в игре.
Заметил что при активированном скрипте буква Q не вводится в любом текстовом поле вне приложений, то есть просто в системе, а в игре она вводится.
Видимо не судьба.
Спасибо за помощь!
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться