Remapear Winkey e desativar seus atalhos

Remapear Winkey e desativar seus atalhos

O objetivo é para jogos e quero remapear o Winkey para alguma outra tecla para que o menu Iniciar não apareça quando eu pressioná-lo, e quero desabilitar os atalhos do Winkey como Winkey + e (que abre o explorer.exe) enquanto eu estou em um jogo.

Isto é o que eu tentei até agora:

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

O remapeamento não é captado pelos jogos, Lwin é tratado como Lwin, mas o menu Iniciar está bloqueado, o que é metade do que queríamos.

Mas, se eu pressionar e segurar a Winkeytecla, eela abre, explorer.exeo que não é pretendido, desejo que a ptecla e ea tecla tenham sido pressionadas nesta etapa.

Existe algum especialista em AHK que tenha conseguido isso?

Tentei bloquear o atalho assim:

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

Mas apenas enviaria a pchave, omitiria a echave.

Eu também tentei usar o Sendcomando com Upum comando como este:

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

Tudo está consertado, exceto que a etecla não faz nada por si só (pressioná-la apenas não faz nada, só funciona se LWin for pressionado e depois epressionado). Observe que o primeiro problema também não foi resolvido aqui, o que significa que a chave LWin não é remapeada pno jogo.


O jogo específico que estou testando nesses scripts é o Minecraft, mas também testei no CS:GO e a chave LWin não é remapeada p, ela ainda é tratada como Winkey. Este não é o caso do Notepad.exe ou de outros programas que não sejam de jogos, LWin::premapeia Winkeypara p.

Responder1

A chave do Windows é uma chave problemática para remapear no AutoHotkey. Isso ocorre porque ele não pode impedir que o Windows veja que a tecla do Windows foi pressionada, entãoele precisa enviar pressionamentos de teclas simulados extras para impedir a abertura do menu Iniciar. Sua melhor aposta em confiabilidade em jogos é a seguinte:

Primeiro, remapeie a tecla usando SharpKeys para uma tecla que não existe no seu teclado, como F15. Em seguida, remapeie esta chave separadamente para os casos em que você está no jogo e quando não está:

#IfWinActive ahk_class LWJGL
    F15::p
#IfWinActive

#IfWinNotActive ahk_class LWJGL
    F15::LWin
#IfWinNotActive

(Você não precisa de instruções de retorno para remapeamentos ou quando uma tecla de atalho precisa executar apenas uma única linha.)

Responder2

Tudo que você precisa fazer é remapear a própria chave, você não precisa remapear os combos de teclas LWin.

#IfWinActive ahk_class LWJGL
    LWin::p
#IfWinActive

Com LWin & e::evocê está remapeando para "e". Portanto, quaisquer teclas modificadoras são passadas. Nesse caso, a chave Win está passando, então você obtém Win + E.

Observe que você {blind}permite que todas as teclas modificadoras afetem as teclas que você pressiona, porque se você remapear uma tecla para, digamos, "e" e quiser que ela seja maiúscula, você manterá pressionada a tecla "Shift" e pressionará a "tecla remapeada".

Observe também que um remapeamento de tecla usa Send, {DownR}um método que tem um efeito semelhante ao pressionar fisicamente a tecla para uso com atalhos de teclado.

informação relacionada