UPDATED-STATEMENT: 20181102@112800@SUN Post created UPDATED-STATEMENT: 20181104@133200@TUE Suggested pre-requisite code that worked only for a short while UPDATED-STATEMENT: 20190101@184318@TUE Pre-requisite code no longer works in csgo anymore and never had with kf2 so I need help with another solution as to why it doesn't work perhaps an update happened preventing it from working for csgo

win10_v1803.17134.345_home
autohotkeyahk_v1.1.30.00

Как удерживать w при удерживании XButton1 на Logitech G502 с помощью AutoHotKey? Проблема в том, что, удерживая клавишу с помощью сценария ниже, он просто отправляет один вывод и не производит типичное поведение Windows, которое действительно его удерживает (см., Например, ниже). Имейте в виду, что только потому, что я намеренно использую это для игр в fps, но глобально переназначить это гораздо проще, чем включить каждую игру, в которую я играю, чтобы участвовать в изменении кнопок управления LogitechG502.

Я думаю, что это здорово - продвигаться вперед в игре, хватая горячие чипсы другой рукой

Будут ли предложения здесь сделать игры хотят изменить?

Становятся ли игры зависимыми от знания нажатия клавиш их пользователями?

ПРОБЛЕМА

  • У меня нет способа переназначить XButton1 на моем LogitechG502 для репликации удержания w
    • Команда ahk-while работает, но не ведет себя должным образом и действует очень быстро, как пресс-релиз-пресс-релиз, даже при замедлении с использованием ahk-sleep
    • см. ниже решение по настройке нескольких команд ahk для переназначения XButton1 LogitechG502 в w для продвижения вперед во время игры

РЕШЕНИЕ

  • Не так далеко
    • Код, предложенный пользователем 3419297, больше не работает после обновления csgo, которое имело отношение к этому самому посту.

ОБРАЗЕЦ

  • Не работает: XButton1::SendInput, w ; mouse advanced button back as holding forward in-game
    • Удерживая в течение 3 секунд, XButton1 (со сценарием выше) дает мне: w
    • Держа в течение 3 секунд, w дает мне: wwwwwwwwwwwwwwwwwwwwwwwwww
  • Работает при нажатии на кнопку (или быстрое повторение нажатия вниз W):
    • не воспроизводит удержание w должным образом, так как этот метод намного быстрее повторения, даже если его замедляет ahk-sleep
$XButton1::
       while GetKeyState("XButton1", "P")
       Send w
       return
  • Workbutnotanymore
    • Этот обязательный код больше не работает после 2 месяцев использования, и, возможно, это может быть связано с обновлением csgo, так как у меня нет другого fps-шутера для тестирования
#NoEnv
#SingleInstance Force
#InstallKeybdHook
#InstallMouseHook
#UseHook
#If WinActive ahk_exe csgo.exe || WinActive ahk_exe game2.exe || WinActive ahk_exe  game3.exe
    XButton1::w
#IfWinActive

2 ответа2

2

Это должно работать:

; maximum number of hotkeys that can be pressed within 2 seconds (default rate of hotkey activations)
; without triggering a warning dialog:
#MaxHotkeysPerInterval 10000

$XButton1::
while GetKeyState("XButton1", "P")
{
    Send w
    Sleep 20 ; ms or more if you  want to reduce the frequency of the send command 
}
return

Непроверенные.

https://autohotkey.com/docs/commands/While.htm

https://autohotkey.com/docs/commands/_MaxHotkeysPerInterval.htm

2

Попробуйте также переназначение:

#NoEnv
#SingleInstance Force
#InstallKeybdHook
#InstallMouseHook
#UseHook

#IfWinActive Title of my game

    XButton1::w

#IfWinActive

Замените Title of my game точным заголовком игрового окна, как показано в Window Spy.

https://autohotkey.com/docs/commands/_IfWinActive.htm

РЕДАКТИРОВАТЬ:

Вы можете использовать директиву # If- или # IfWinActive для создания контекстно-зависимых горячих клавиш для более чем одного приложения / окна:

#If WinActive("Title of my game1") || WinActive("Title of my game2") ; "||" means "OR"

    XButton1::w
    XButton2::x

#If WinActive("Title of my game3")  

    XButton1::a
    XButton2::b

#If  ; turn off context sensitivity

; In all other applications/windows you can make XButton1 and XButton2 to do something else, e.g.:

XButton1:: Send ^c  ; copy
XButton2:: Send ^v  ; paste

https://autohotkey.com/docs/commands/_If.htm

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .