Ouvindo a tecla "WIN"
Até onde eu sei, a única razão pela qual você pode não ver os eventos vindos da tecla do mouse “WIN” é que você está apenas procurando por eventos relacionados ao mouse, enquanto a tecla “WIN” produz teclado. relacionados com o botão direito do mouse. Efetivamente, essa parte já foi discutida nos comentários - o remapeamento "Right-Win" funciona perfeitamente.
Enviados repetidamente para eventos RWin
Posso confirmar que ele envia eventos repetidamente. AFAIK, todas as teclas do teclado funcionam assim - por exemplo "F2". Pelo menos os seguintes AHK truque mostra efetivamente o mesmo para ambos" F2 "e" RWin ", tanto quanto eu posso dizer.
#InstallKeybdHook
#InstallMouseHook
1::KeyHistory
A coisa boa sobre a tecla "WIN" é que é mecanicamente capaz de produzir um único pressionamento de tecla. Em contraste com as inclinações de roda - é muito difícil conseguir um "clique único" delas - até o meu clique mais curto é normalmente tratado como 3 a 5 pressionamentos de teclas separados.
Ouvindo as teclas de inclinação das rodas
O “Centro de Mouse e Teclado da Microsoft” (versão 2.7.133.0) parece mudar o comportamento do mouse - o AHK não consegue mais ouvir os eventos WheelRight / WheelLeft. A maneira mais fácil de corrigir isso é desinstalar o site da Microsoft. ferramenta. Embora, de acordo com minhas experiências, isso não afete a chave "WIN".
No entanto, ainda deve ser possível remapear a roda até mesmo sem desinstalá-la. Ao usar os exemplos 1 e 2 do AHKHID foi capaz de pegar 1FFDFF e 1F0300 "dados" da roda direita e esquerda inclina, usando UsagePage 12, uso 1 com "Microsoft mouse e teclado center" instalado e nada depois de eu ter desinstalado.
Eventos de inclinação de roda enviados repetidamente
Pessoalmente, acabei simplesmente introduzindo um atraso, como sugerido por Bob . Parece que o código mais simples, baseado no código em esta questão funciona bem neste caso (embora possa não ser ideal - não sou especialista em AHK). O seguinte script AHK me permite remapear Wheel-tilt-Left para "Ctrl + Alt + leftArrow" e Wheel-tilt-Right para "Ctrl + Alt + rightArrow". Eu uso essas teclas de atalho em VirtuaWin para alternar para a área de trabalho virtual anterior / seguinte (uma tarefa em que "uma resposta por clique" é muito importante) e funciona perfeito. (Ainda assim, se eu pressionar e segurar o "botão de inclinação", recebo ~ 5 eventos por segundo).
WheelRight::
if( not GetKeyState("WheelRight") )
sleep 200
Send, {LControl down}
Send, {LAlt down}
Send, {right}
Send, {LControl up}
Send, {LAlt up}
return
WheelLeft::
if( not GetKeyState("WheelLeft") )
sleep 200
Send, {LControl down}
Send, {LAlt down}
Send, {left}
Send, {LControl up}
Send, {LAlt up}
return
RWin::
Send, {Browser_Forward}
return
RWin funciona bem mesmo sem esse truque.