Neuzuordnen von Alt + Taste zu derselben Taste funktioniert nicht?

0

Hier ist meine aktuelle Tastatur, eine Logitech K270:

Logitech K270-Tastatur

Ich möchte das Browser_Homewie folgt überschreiben :

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

Während die erste remap die zweite funktioniert nicht, und ALT+ Browser_HomeErgebnisse in Media_Nextgesendet werden. Hier ist der relevante Teil meines Skripts:

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

Ich weiß nicht, ob dies auf Logitech, die Implementierung von AHK oder einen logischen Fehler in meinem AHK-Skript zurückzuführen ist (wahrscheinlich).

beppe9000
quelle

Antworten:

0

Haben Sie einen kombinierten Hotkey-Ansatz ausprobiert?

; $ = 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

Oder kombiniert mit dem ternären Operator:

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

Ich weiß nicht, ob dies tatsächlich funktioniert oder nicht (dh nicht getestet), nur etwas zum Ausprobieren.

Manchmal ist es einfacher zu debuggen, wo Probleme auftreten, wenn Sie einen kombinierten Hotkey haben, indem Sie MsgBoxAnweisungen zu den verschiedenen Testfällen hinzufügen, um zu sehen, welche ausgeführt werden oder nicht, und dann, ob sie ausgeführt werden (zum Beispiel für eine bestimmte Sendeanweisung). , dann können Sie über das Taskleistensymbol im Tastenanschlagsprotokoll nachsehen, was tatsächlich gesendet oder möglicherweise aufgrund der Hotkey-Syntax ignoriert / blockiert wurde oder was nicht (wenn es versehentlich so eingerichtet wurde, dass AutoHotkey blockiert, was Sie möchten) es zu senden)

JJohnston2
quelle
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

Ich hoffe diese Hilfe (mal bis zu dir) oder

Browser_Home::Send, {Media_Next}
Alt & Browser_Home::send, {Browser_Home}
Marco Polo
quelle