2015-07-21 72 views
2

这是我的代码。兑换LWin和LAlt

#InputLevel 1 
LAlt::LWin 
LWin::LAlt 

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

从我的理解,InputLevel 2首先被执行,然后InputLevel 1,如果我按LALT键和键,这意味着,屏幕上会显示我按下!一,如果我按伦键和键,屏幕将显示我按#a。

但实际上我的屏幕没有显示任何内容。我的钥匙没有被捕获。

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

+1

您的脚本工程100%的罚款对我..我得到了正确的工具提示:(AHK使用VERS 1.1.22.2)/ – Blauhirn

+0

@Blauhirn我使用完全相同的版本!它怎么会在我身边不起作用?你知道可能的原因吗? – Gqqnbig

+0

@Blauhirn顺便说一下,我使用的Windows 7和键盘是菲尔科67. – Gqqnbig

回答

1

当您按alt + a时,LAlt::LWin热键先被触发,而热键被忽略。如果您想要触发!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::