这是我的代码。
#InputLevel 1
LAlt::LWin
LWin::LAlt
#InputLevel 2
!a::
#a::
tooltip You pressed %A_ThisHotkey%.
return
根据我的理解,首先执行InputLevel 2,然后执行InputLevel 1,这意味着如果我按下LAlt键和一个键,屏幕将显示我按下了!a,如果我按下LWin键和一个键,屏幕将显示我按下#A。
然而实际上我的屏幕什么也没显示。我的钥匙没有被捕获。
我错过了什么吗?我想首先捕获热键,然后重新映射。
答案 0 :(得分:1)
当您按alt + a
时,首先触发LAlt::LWin
热键,并忽略!a::
热键。如果您想要触发!a::
而不管第一个热键被激活,您必须在~
热键上添加LAlt::LWin
,以便其原生功能(执行alt + a所必需)不是将被封锁。
使用此示例可能更容易理解:
#InputLevel 1
~LAlt:: tooltip First pressed %A_ThisHotkey%.
~LWin:: tooltip First pressed %A_ThisHotkey%.
#InputLevel 2
!a::
#a::
tooltip Then pressed %A_ThisHotkey%.
return
ps:如果您还想忽略(可能)被按下的额外修饰符,您可以在*
和!a::
热键上添加通配符#a::
。所以,最后,热键看起来像这样:~LAlt::LWin
~LWin::LAlt
*!a::
和*#a::