Переназначение Alt + Key для того же ключа не работает?

401
beppe9000

Вот моя текущая клавиатура, Logitech K270:

Logitech K270 Keyboard

Я хочу переопределить, Browser_Homeкак это:

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

В то время как первый переназначение работает, второй нет, и ALT+ Browser_Homeприводит Media_Nextк отправке. Вот соответствующая часть моего сценария:

Browser_Home::Send  !Browser_Home::Send ; this one is ignored 

Я не знаю, связано ли это с Logitech, реализацией AHK или с логической ошибкой в ​​моем скрипте AHK (вероятно).

0

2 ответа на вопрос

0
JJohnston2

Вы пробовали комбинированный подход горячих клавиш?

; $ = 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  Else Send  Return 

Или в сочетании с использованием троичного оператора:

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

Я не знаю, работает ли это на самом деле или нет (т.е. не проверено), просто что-то попробовать.

Иногда проще отладить, когда что-то идет не так, когда у вас есть комбинированная горячая клавиша, добавив MsgBoxоператоры в различных тестовых примерах, чтобы увидеть, какие из них выполняются или нет, а затем, если они кажутся выполненными (например, для конкретного оператора send), затем вы можете просмотреть журнал нажатий клавиш на значке в трее и посмотреть, что на самом деле было отправлено, или, возможно, проигнорировано / заблокировано из-за синтаксиса горячих клавиш или еще чего-то (если он настроен непреднамеренно так, что AutoHotkey блокирует то, что вам нужно) это отправить)

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

Я надеюсь, что это поможет (раз до вас) или

Browser_Home::Send,  Alt & Browser_Home::send,