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 Winkey
tecla, e
ela abre, explorer.exe
o que não é pretendido, desejo que a p
tecla e e
a 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 p
chave, omitiria a e
chave.
Eu também tentei usar o Send
comando com Up
um 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 e
tecla não faz nada por si só (pressioná-la apenas não faz nada, só funciona se LWin for pressionado e depois e
pressionado). Observe que o primeiro problema também não foi resolvido aqui, o que significa que a chave LWin não é remapeada p
no 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::p
remapeia Winkey
para 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::e
você 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.