Alt + A
我有一个 AutoHotkey 脚本,当按下时会发送左箭头键。我还启用了 KeyHistory。
KeyHistory
!a::Send "{Left 1}"
当我打开 KeyHistory 并按下 时Alt + A
,KeyHistory 给出以下输出:
我知道该Control
键是用作屏蔽键的,但为什么LAlt
先松开然后又按下呢?是不是因为我原本按住的是 LAlt 键(按下),而脚本执行时,脚本需要先松开 LAlt 键,然后再按下左键?我认为可能是这样,因为如果 LAlt 一直处于按下状态(在这种情况下,发送而不是) Alt + A
,可能会出现问题。Alt + left
left
我猜测,在left
发送按键之后,脚本会LAlt
再次按下,因为我仍然按住该LAlt
按键。
我的假设正确吗?谢谢!
答案1
您的脚本具有触发器!a::
而不是!a up::
,这意味着这将在按下按键时触发,而不是在释放按键后触发。这意味着,如果保持原样,则在发送按键时Left按键Alt仍将被按下。
AutoHotkey 在此试图避免的问题是 AltLeft与 相同Backspace,这当然应该避免。
Alt这会强制 AHK在模拟按下和释放按键之前释放该按键Left。
发送按键后Left,AHK 将再次模拟按下该Alt按键,因此当您稍后物理释放按键时情况将是正确的。
请注意,AHK 不知道或不关心 AltLeft是否与 相同Backspace。这是一种通用机制,用于避免因将键保持 Alt在“按下”状态而导致的各种不必要的组合键。