Code: Select all
; 函数: 长按
; 长按,则执行标签或函数
/*
AHK 版本: 1.1.20.00+
已知缺陷:
* 影响短按的出字速度
* 不能用于组合键
示例:
$q::长按("HelloWord") ; $前缀是必须的!
HelloWord() {
MsgBox, Hi
}
*/
长按(执行标签或函数, 长按时间_毫秒 = 300) {
k := LTrim(A_ThisHotkey, "$")
Loop
Sleep, 10
Until !GetKeyState(k, "P") || (A_TimeSinceThisHotkey > 长按时间_毫秒)
If (A_TimeSinceThisHotkey > 长按时间_毫秒) {
SetTimer, %执行标签或函数%, -1
KeyWait, % k
} Else {
k := GetKeyState("CapsLock", "T") ? Format("{:U}", k) : k
SendInput, % "{" k "}"
}
}