Time 确定按下按键的时间长度
可以修改下面的脚本,以便 “cl”会在“cl”键按下时触发“www.google.com” 两个按钮都按下500毫秒 原因是,作为输入文本的一部分,有时会连续快速按下“cl”键,然后触发“www.google.com” Per: [T] 在特定的持续时间内编程键向下的唯一方法是使用向下命令,然后使用带有(手动输入的时间)的等待功能,然后使用向上命令[。]Time 确定按下按键的时间长度,time,autohotkey,Time,Autohotkey,可以修改下面的脚本,以便 “cl”会在“cl”键按下时触发“www.google.com” 两个按钮都按下500毫秒 原因是,作为输入文本的一部分,有时会连续快速按下“cl”键,然后触发“www.google.com” Per: [T] 在特定的持续时间内编程键向下的唯一方法是使用向下命令,然后使用带有(手动输入的时间)的等待功能,然后使用向上命令[。] 因此,您可以通过在当前if块中放置一个计时器和另一个if块来解决此问题,尽管这听起来不是个好主意。这似乎可以实现以下目的: ~c:: ~l::
因此,您可以通过在当前if块中放置一个计时器和另一个if块来解决此问题,尽管这听起来不是个好主意。这似乎可以实现以下目的:
~c::
~l::
If (GetKeyState("c","p") && GetKeyState("l","p")) {
Send, {Backspace Down}{Backspace Up}{Backspace Down}{Backspace Up}
sleep, 100
If (GetKeyState("c","p") && GetKeyState("l","p")) {
Run, "www.google.com"
}
Return
}
Return
使用
A_TickCount
可能是一个不错的选择
~l::
duration := 0
If (GetKeyState("c","p") && GetKeyState("l","p"))
{
start := A_TickCount
While (GetKeyState("c") && GetKeyState("l"))
Sleep, 1
duration := A_TickCount - start
}
if (duration > 500)
Run, "www.google.com"
Return
500毫秒的延迟可能会导致无法控制的按键重复,因此我们无法再可靠地删除按下的按键。因此,我的建议是找到重复延迟,只需等待如此长的时间减去~150毫秒:
~c::
~l::
If (GetKeyState("c","p") && GetKeyState("l","p")) {
If (!GetKeyState("c","p") || !GetKeyState("l","p"))
Return
DllCall("SystemParametersInfo", UInt, 0x16, UInt, 0, UIntP, RepeatDelay, UInt, 0) ;get the key repeat delay
Sleep % (RepeatDelay+1)*250-150
If (GetKeyState("c","p") && GetKeyState("l","p")) {
SendInput, {c up}{l up}{BS}{BS}
Run, www.google.com
}
}
Return
谢谢,但我倾向于接受我自己的答案,因为我认为这更容易理解,而且过去一天一直在为我工作,没有任何问题。。。但是,如果我的代码有问题,或者如果使用上面的脚本有好处,请告诉我。我的解决方案唯一明显的好处是,您可以让密钥根据持有密钥的时间执行不同的操作。如果保持一秒钟以上,做些别的事情。如果您希望避免在按住键c和键l时发送键,也可以使用
KeyWait
。如果您希望在释放时运行某个东西,则可接受的答案有效,但此答案在100毫秒后进行评估,无论如何,最好用于游戏目的+1.
~c::
~l::
If (GetKeyState("c","p") && GetKeyState("l","p")) {
If (!GetKeyState("c","p") || !GetKeyState("l","p"))
Return
DllCall("SystemParametersInfo", UInt, 0x16, UInt, 0, UIntP, RepeatDelay, UInt, 0) ;get the key repeat delay
Sleep % (RepeatDelay+1)*250-150
If (GetKeyState("c","p") && GetKeyState("l","p")) {
SendInput, {c up}{l up}{BS}{BS}
Run, www.google.com
}
}
Return