交换LWin和LAlt

时间:2015-07-21 06:58:38

标签: autohotkey

这是我的代码。

#InputLevel 1
LAlt::LWin
LWin::LAlt

#InputLevel 2
!a::
#a::
tooltip You pressed %A_ThisHotkey%.
return

根据我的理解,首先执行InputLevel 2,然后执行InputLevel 1,这意味着如果我按下LAlt键和一个键,屏幕将显示我按下了!a,如果我按下LWin键和一个键,屏幕将显示我按下#A。

然而实际上我的屏幕什么也没显示。我的钥匙没有被捕获。

我错过了什么吗?我想首先捕获热键,然后重新映射。

1 个答案:

答案 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::