【发布时间】:2013-10-03 00:55:49
【问题描述】:
我每天都使用一个应用程序来监听控制键的双击。它还将另一个功能键映射到单击控制键,并且在应用程序中无法阻止或重新映射一个或其他功能。
我想做的是使用 AutoHotkey 来防止应用程序响应双击控制。
如果在两个控件 keydown 事件之间插入鼠标移动,应用程序将不会以默认的双击行为响应。
我有什么办法可以编写一个 AutoHotkey 脚本来监听控制键的两次连续点击,并在第二次控制点击之前插入一个良性事件(例如鼠标事件)?
我已经尝试了以下代码,但第二个 LControl 仍然通过。有没有办法阻止第二个 LControl 通过?
~LControl::
if (A_PriorHotkey <> "~LControl" or A_TimeSincePriorHotkey > 400)
{
; Too much time between presses, so this isn't a double-press.
SendInput {LControl}
return
}
MouseMove 5,5,10,R
;SendInput {LControl}
return
【问题讨论】:
-
您可以通过定义“超时”来检测双击(通常 400 毫秒较好)。然后,您可以在上一次按键发生时检查所需键的每次按键。如果在时间范围内,则为双击。
-
到你的新代码:看看hotkey docs。波浪号修饰符
~将始终触发键的本机功能,也就是说,CTRL按键将按定义滴入!去掉修饰符,LControl::应该没问题。
标签: autohotkey