希望可以 ——设置快捷键为░某个按键的双击或三击░——如:某动作通过双击 Shift 来触发

动作需求 · 1909 次浏览
秋Cool 创建于 2021-05-31 13:17

目前我是通过AHK脚本来实现这样功能的

#NoTrayIcon

shift::
 
intInterval := 200 ; 若两次连击在这个时间间隔中,则视为双击。

if (A_PriorHotkey <> "shift" or A_TimeSincePriorHotkey > intInterval)
{
    KeyWait, shift
    return
}
Send !+^{down}
return

但是我发现后台运行的 ahk 脚本多了过后按键之间就会有干涉,比如我还设置了双击 Alt

#NoTrayIcon
#IfWinNotActive  ahk_exe illustrator.exe

Alt::
 
intInterval := 200 ; 若两次连击在这个时间间隔中,则视为双击。

if (A_PriorHotkey <> "Alt" or A_TimeSincePriorHotkey > intInterval)
{
    KeyWait, Alt
    return
}
Send !+^{up}
return

结果就总是触发我的 Ctrl 键(弹出quicker面板),在按键检测时也常把 Alt 检测为 Ctrl ,所以还是希望 Quicker 能自带这样的功能

 


回复内容
CL 2021-06-01 08:57
#1

脚本放到同一个文件里不知道会不会好些。 

底层原理是一样的,如果AHK会遇到问题,大概率Quicker也可能会。另外最初在弹窗设计的时候尝试过双击ctrl,实际上判断会有些困难,容易产生错判的情况。

秋Cool 2021-06-11 21:52 :

请问用虚拟按键码可以解决这个按键干涉的问题吗?刚刚了解到 虚拟按键码不使用键盘钩子

CL 回复 秋Cool 2021-06-11 21:59 :

两个不是一个类别的概念吧。钩子是用来监听键盘事件,按下键的时候,得到具体那个键的虚拟键码。

FaniX 2021-06-17 00:01
#2

因为AutoHotKey默认指定了Ctrl键作为屏蔽WinAlt键松开事件的按键,所以以Alt为热键的脚本在释放Alt后会自动发送一个模拟Ctrl键击。

可以在脚本最前面设置#MenuMaskKey vk07来取消这一特性

详见AutoHotKey的说明文档

FaniX 最后更新于 2021-06-17 00:01
秋Cool 2021-06-26 20:04 :

谢谢提醒,但我不想去学了,就这样将就了吧  (Oᴗo)

回复主贴