A_ThisHotkey 和 A_PriorHotkey 仅考虑声明为热键的键

问题描述 投票:0回答:1

我正在尝试编写一个脚本,在释放

Ctrl
时,它会告诉我这是否是最近按下的键,或者自
Ctrl
按下后是否按下了另一个键。

因此,如果在

F
按下时按下
Ctrl
,我需要知道。 “按住时”键应该是任何键,而不仅仅是像
Ctrl
这样的修饰符。

我写了以下内容,但我有一个特殊的问题。看起来它只会通知我按下了某个键,IF该键本身在脚本中被声明为热键。

因此,使用以下脚本,如果按下

F
,我会收到通知,但一旦我注释掉
^f::  ; Do Nothing
行,如果按下
F
,我将不会收到通知:

#singleinstance, force
#Persistent
#NoEnv
#Warn, All, OutputDebug

~LCtrl::
ToolTip, % "Most Recent Key: " A_ThisHotkey "`n Prior Key: " A_PriorHotkey   
Return
^f::  ; Do Nothing

考虑到这一点,我必须声明系统上的每个键盘和鼠标键才能使我的程序正常工作。这并不理想,它在我的主脚本中根本不起作用。

有没有办法用在脚本中

not
声明为热键的键盘/鼠标键填充
A_ThisHotkey
A_PriorHotkey

感谢您的帮助。

autohotkey
1个回答
0
投票
AHK 中的

热键 执行任务并且必须由用户定义。 因此 A_ThisHotkeyA_PriorHotkey 始终引用脚本中已定义的热键。

要获取最后按下的键盘/鼠标键的名称,请使用 A_PriorKey:

#NoEnv
#singleinstance, force
#Warn, All, OutputDebug
#InstallKeybdHook
#InstallMouseHook

~LCtrl:: ToolTip, % "Most Recent Key: " A_ThisHotkey "`n Prior Key: " A_PriorKey   
© www.soinside.com 2019 - 2024. All rights reserved.