Цель - для игр, и я хочу переназначить Winkey на какую-то другую клавишу, чтобы меню «Пуск» не появлялось при нажатии, и я хочу отключить ярлыки Winkey, такие как Winkey+e (который открывает explorer.exe), пока я Я в игре.

Это то, что я пробовал до сих пор:

#IfWinActive ahk_class LWJGL
    LWin::p
    return
    LWin & e::e
    return
#IfWinActive

Рэппинг не воспринимается играми, Lwin рассматривается как Lwin, но меню «Пуск» заблокировано, что составляет половину того, к чему мы стремились.

Но если я нажимаю и удерживаю Winkey то клавиша e открывает файл explorer.exe который не предназначен, я хочу, чтобы клавиша p клавиша e были нажаты на этом шаге.

Есть ли какой-нибудь эксперт AHK, который сделал это?

Я попытался заблокировать ярлык так:

#IfWinActive ahk_class LWJGL
    LWin::p
    return
    Lwin & e::
    return
#IfWinActive

Но он будет отправлять только клавишу p , он опускает клавишу e .

Я также попытался использовать команду Send командой Up следующим образом:

#IfWinActive ahk_class LWJGL
    LWin::p
    return
    LWin & e::
        Send {LWin Up}
        Send {e Down}
    return
    e Up::Send {e Up}
    return
#IfWinActive

Все исправлено, кроме клавиши e которая ничего не делает сама по себе (нажатие на нее ничего не делает, она работает только в том случае, если нажата LWin, а затем нажата e ). Обратите внимание, что первая проблема здесь также не решена, что означает, что ключ LWin не переопределяется в игру p .


Конкретной игрой, которую я тестирую на этих скриптах, является Minecraft, но я также тестировал ее на CS:GO, и ключ LWin не переназначается на p , он все еще рассматривается как Winkey. Это не относится к Notepad.exe или другим неигровым программам, LWin::p Winkey на p .

1 ответ1

1

Ключ Windows является проблемным ключом для переназначения в AutoHotkey. Это связано с тем, что фактически он не может помешать Windows видеть, что клавиша Windows была нажата, поэтому ему необходимо отправить дополнительные смоделированные нажатия клавиш, чтобы предотвратить открытие меню «Пуск». Ваша лучшая ставка на надежность в играх заключается в следующем:

Сначала переназначьте клавишу SharpKeys на клавишу, которой нет на вашей клавиатуре, например, F15. Затем переназначьте этот ключ отдельно для случаев, когда вы находитесь в игре, а когда нет:

#IfWinActive ahk_class LWJGL
    F15::p
#IfWinActive

#IfWinNotActive ahk_class LWJGL
    F15::LWin
#IfWinNotActive

(Вы не нуждаетесь в операторах возврата для переназначений или когда горячая клавиша должна выполнять только одну строку.)

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