Remapper Alt + Key sur la même clé ne fonctionne pas?


0

Voici mon clavier actuel, un Logitech K270:

Clavier Logitech K270

Je veux remplacer le Browser_Homecomme ceci:

  1. Browser_Home >>> Media_Next
  2. ALT+ Browser_Home>>>Browser_Home

Tandis que le premier remappage fonctionne, le second ne fonctionne pas et ALT+ a pour Browser_Homerésultat d' Media_Nextêtre envoyé. Voici la partie pertinente de mon script:

Browser_Home::Send {Media_Next}
!Browser_Home::Send {Browser_Home} ; this one is ignored

Je ne sais pas si cela est dû à Logitech, à la mise en œuvre d'AHK ou à une erreur logique dans mon script AHK (probable).

Réponses:


0

Avez-vous essayé une approche de raccourci combiné?

; $ = Force keyboard hook such that Send command won't trigger itself
; * = Prefix to allow firing with any other hotkey combination as long as that key is pressed

$*Browser_Home::
    If GetKeyState("Alt", "P")  ; See if user is holding the Alt key down
        Send {Browser_Home}
    Else
        Send {Media_Next}
Return

Ou combiné à l'aide de l'opérateur ternaire:

$Browser_Home::Send, % GetKeyState("Alt", "P") ? "{Browser_Home}" : "{Media_Next}"

Je ne sais pas si cela fonctionne réellement ou non (c.-à-d. Non testé), juste quelque chose à essayer.

Parfois, il est plus facile de déboguer où les choses ne vont pas quand vous avez un raccourci clavier combiné en ajoutant des MsgBoxinstructions dans les différents cas de test pour voir ceux qui sont en cours d'exécution ou non, puis si elles semblent s'exécuter (pour une instruction d'envoi particulière par exemple). , vous pouvez alors regarder dans le journal de frappe via l’icône de la barre des tâches et voir ce qui a été envoyé, ou éventuellement ignoré / bloqué en raison de la syntaxe du raccourci clavier ou autre (s’il est configuré par inadvertance de manière à ce que AutoHotkey bloque ce que vous voulez). à envoyer)


0
*Browser_Home::
GetKeyState, OutputVar, alt , P
if(OutputVar = "D")
{
    ;~ MsgBox,  alt down %OutputVar%
    Send {Browser_Home}
    sleep, 250
}
else if(OutputVar = "U")
{
    Send {Media_Next}  
    sleep, 250
}
return
*Browser_Home up::
sleep, 50
return

J'espère que cette aide (à vous de décider) ou

Browser_Home::Send, {Media_Next}
Alt & Browser_Home::send, {Browser_Home}
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.