如何使用 AutoHotKey 增加按键之间的输入时间

问题描述 投票:0回答:4

我在 Windows 7 中使用 AutoHotKey 脚本将剪贴板的内容作为一系列击键发送。我对 AutoHotKey 很陌生,但我想知道是否有某种方法可以调整它发送的每次击键之间的时间。目前,我的脚本中的唯一一行如下:

^!k:: Send %clipboard%

我希望能够将击键之间的时间(目前似乎约为每秒 50 个字符)增加到每秒 10 个字符。

我使用它通过终端仿真器将击键发送到微控制器。我遇到的问题是,当我实际手动输入击键时,所有内容都会按预期注册,但是当我将剪贴板内容作为击键发送时,出现问题,我希望尝试减慢输入速度来查明问题。本质上,我想在尝试另一个更复杂的解决方案之前排除输入速度的问题。

如果有人有任何想法,我们将不胜感激。谢谢!

autohotkey
4个回答
5
投票

您可以使用此功能

使用

Sendpersec(Clipboard, 10)

Sendpersec("jdkfjdkjdfkjdfkjdfkdfjdf", 5)

功能

Sendpersec(Data, Chs){
sleeptime := 1000 / Chs
IfLess,sleeptime,1
    sleeptime := 1
loop,
{
StringLeft,tosend,Data,1
Send, %tosend%
sleep,%sleeptime%
StringTrimLeft,Data,Data,1
IfEqual,Data
    break
}
}

3
投票

提高打字速度的一个简单方法是使用

SendInput
而不是
Send
。这会“打字”得更快!或者,您可以将字符串存储在 ClipBoard 中并使用
Send, ^v
发送它。

示例:

Clipboard= Long string to type
Send, ^v

1
投票

是的,使用

Sleep, DelayInMilliseconds
。例如,每秒 10 次击键,您将使用 100

的延迟

http://www.autohotkey.com/docs/commands/Sleep.htm

编辑:也许您想要这个:

SetKeyDelay [, Delay, PressDuration, Play]
“设置 Send 和 ControlSend 发送的每次击键后将发生的延迟。”

http://www.autohotkey.com/docs/commands/SetKeyDelay.htm


0
投票

SetKeyDelay, 100
添加到脚本顶部的新行(如果您希望字符之间有 100 毫秒的延迟)

另外,删除自动添加到新脚本中的

SendMode Input
行。


更多信息:

SetKeyDelay 语法:

SetKeyDelay [, Delay, PressDuration, Play]

https://www.autohotkey.com/docs/v1/lib/SetKeyDelay.htm

发送模式信息:

SetKeyDelay
不适用于
SendMode Input
。它确实适用于默认值(未明确定义时),即
SendMode Event

https://www.autohotkey.com/docs/v1/lib/SendMode.htm

归功于此答案:
AutoHotKey SetKeyDelay 选项似乎不起作用

© www.soinside.com 2019 - 2024. All rights reserved.