Autohotkey 在自动热键中每秒粘贴数百个字符的最佳方式是什么

Autohotkey 在自动热键中每秒粘贴数百个字符的最佳方式是什么,autohotkey,Autohotkey,当我使用send/sendinput/sendplay时,加载时间太长,可能是我处理字符串不当。我发现最快的方法是使用剪贴板,但即便如此,这也是一个问题,因为我需要粘贴的内容的速度和多样性有多快。说: 在大多数情况下,SendInput几乎是瞬时的,即使在发送长字符串时也是如此 如果您从未同时运行多个AHK脚本,则有一个注释与此无关: 如果执行SendInput的脚本以外的脚本安装了低级键盘挂钩,则如果SendMode InputHenPlay有效,SendInput将自动恢复为SendEven

当我使用send/sendinput/sendplay时,加载时间太长,可能是我处理字符串不当。我发现最快的方法是使用剪贴板,但即便如此,这也是一个问题,因为我需要粘贴的内容的速度和多样性有多快。

说:

在大多数情况下,SendInput几乎是瞬时的,即使在发送长字符串时也是如此

如果您从未同时运行多个AHK脚本,则有一个注释与此无关:

如果执行SendInput的脚本以外的脚本安装了低级键盘挂钩,则如果SendMode InputHenPlay有效,SendInput将自动恢复为SendEvent或SendPlay


然而,我认为,对于某些/许多应用程序,剪贴板方法确实是唯一一个真正瞬时的方法。因此,我只需保存一个临时变量,然后在复制粘贴文本后将其还原。

如果数据量太大,无法立即粘贴,为什么不将数据存储到多个变量伪数组中,并在伪数组中循环,将第一个变量复制到剪贴板,粘贴它,复制第二个变量,等等。在循环中。

将这些行添加到脚本顶部,然后再次尝试使用剪贴板和SendInput:

SetBatchLines, -1  
SetKeyDelay, -1, -1
还有ControlSetText,它几乎绕过键盘输入模拟,更直接地与目标进程通信。但是您总是替换该控件的整个文本,因此它实际上不仅仅是粘贴

ControlSetText, Edit1, New Text Here, Untitled -  
如果你能告诉我们你到底需要做什么,我们可能会想出一个更好的解决方案。例如,功能极其强大的函数/对象可以直接写入RAM并直接将数据发送到web服务器,而无需糟糕的键盘模拟。但由于你还没有谈到你实际上在尝试什么,很难说这些对你是否有用

另外,请注意,目标进程可能具有某种类型的有限缓冲区大小,因此每秒粘贴的字符数不能超过x个