Post by wocala » 20 Mar 2015, 20:24
的确复杂,
我用autohotkey主要是改一下快捷键什么的,所以也不打算深入研究了……
谢谢你的帮助~
tmplinshi wrote:Code: Select all
$1::
If ( MSec := IsDoubleClick() )
ToolTip, 检测到快速双击! 双击速度: %MSec% 毫秒
Else
ToolTip
Return
IsDoubleClick(MSec = 200) {
static _count := 0, k
static fn := Func("IsDoubleClick").Bind("SendKey")
If (MSec = "SendKey") {
_count := 0
k := LTrim(A_ThisHotkey, "$")
k := GetKeyState("CapsLock", "T") ? Format("{:U}", k) : k
SendInput, % "{" k "}"
}
Else If (++_count <= 1) {
SetTimer, %fn%, % -1 * MSec
Return
} Else {
SetTimer, %fn%, Off
_count := 0
If (A_TimeSincePriorHotkey < MSec)
Return A_TimeSincePriorHotkey
}
}
我被绕晕了。。
测试了下,效果并不好,会影响短按,而且这也是必然的吧。因为你要“无视输入框”,那么必然要在双击耗时范围内屏蔽按键(200毫秒左右),然后才能进行单击、双击判断。而不屏蔽按键,就没法达到“无视输入框”。
的确复杂, :crazy:
我用autohotkey主要是改一下快捷键什么的,所以也不打算深入研究了……
谢谢你的帮助~ :thumbup:
[quote="tmplinshi"][code=autohotkey file=Script.ahk]$1::
If ( MSec := IsDoubleClick() )
ToolTip, 检测到快速双击! 双击速度: %MSec% 毫秒
Else
ToolTip
Return
IsDoubleClick(MSec = 200) {
static _count := 0, k
static fn := Func("IsDoubleClick").Bind("SendKey")
If (MSec = "SendKey") {
_count := 0
k := LTrim(A_ThisHotkey, "$")
k := GetKeyState("CapsLock", "T") ? Format("{:U}", k) : k
SendInput, % "{" k "}"
}
Else If (++_count <= 1) {
SetTimer, %fn%, % -1 * MSec
Return
} Else {
SetTimer, %fn%, Off
_count := 0
If (A_TimeSincePriorHotkey < MSec)
Return A_TimeSincePriorHotkey
}
}[/code]
我被绕晕了。。
测试了下,效果并不好,会影响短按,而且这也是必然的吧。因为你要“无视输入框”,那么必然要在双击耗时范围内屏蔽按键(200毫秒左右),然后才能进行单击、双击判断。而不屏蔽按键,就没法达到“无视输入框”。[/quote]