Input 自动热键延迟所有输入
我正在尝试编写一个脚本来延迟我发送的所有物理击键。这包括向下键、向上键和按住键的持续时间 到目前为止我Input 自动热键延迟所有输入,input,delay,autohotkey,Input,Delay,Autohotkey,我正在尝试编写一个脚本来延迟我发送的所有物理击键。这包括向下键、向上键和按住键的持续时间 到目前为止我 a:: if( not GetKeyState("a")) sleep 1000 sendinput {a down} return a up:: sleep 1000 sendinput {a up} 但问题是,由于我无法理解的原因,并不是每一次中风都会延迟。按下按键后,接下来的几次按下和释放都不会延迟 我想询问是否有一种方法可以简单地延迟所有输入
a::
if( not GetKeyState("a"))
sleep 1000
sendinput {a down}
return
a up::
sleep 1000
sendinput {a up}
但问题是,由于我无法理解的原因,并不是每一次中风都会延迟。按下按键后,接下来的几次按下和释放都不会延迟
我想询问是否有一种方法可以简单地延迟所有输入,无论是使用AHK还是其他应用程序,而不是对每个键都执行这样的脚本也是合适的。在热键中添加前缀
$
这通常仅在脚本使用Send命令发送组成热键本身的键时才有必要,否则可能导致热键自身触发。$prefix强制使用键盘钩子来实现这个热键,作为副作用,它会阻止Send命令触发它。$前缀相当于在该热键定义上方的某个位置指定了#UseHook
[v1.1.06+]:#InputLevel和SendLevel提供了额外的控制,控制Send命令触发哪些热键和热字符串
来源:首先,我无法想象有什么方法可以轻松地适当延迟密钥释放 以下是一个糟糕的解决方法。我对更好的解决方案也很感兴趣
aUp = false
delay_when_pressing_down = 200
delay_between_sends = 10
return
$a::
aUp = false
delay_start := a_tickCount
sleep 1000
send a
sleep, %delay_when_pressing_down%
if aUp = true
{
time_a_was_pressed_down := time_of_release - delay_start
time_a_was_pressed_down -= %delay_when_pressing_down%
start := a_tickCount
loop
{
now := a_tickCount
diff := now - start
if diff > %time_a_was_pressed_down%
break
send a
sleep, %delay_between_sends%
}
return
}
loop
{
send a
sleep, %delay_between_sends%
if aUp = true
{
start := a_tickCount
loop
{
send a
sleep, %delay_between_sends%
now := a_tickCount
diff := now - start
if diff > 1000
break
}
break
}
}
return
$a up::
time_of_release := a_tickCount
aUp = true
return
^e::reload
效果比我的尝试要好得多,唯一的问题是延迟计时器运行时密钥没有注册。不幸的是,这并没有像现在这样延迟“所有”按键。我开始感觉很糟糕,因为我的帖子里有很多业余的东西。不管怎样,我不确定我是否理解你的担忧,但我补充了几句话。可能会按照您现在期望的方式工作。可能会重复