1

我正在使用包robot.js 并且需要使用我的程序运行许多按键命令(通常每秒超过50 个)。

到目前为止,它有点像这样:

...for in elements

setTimeout(() => {
    console.log(element.deltaTime) // Logs the time that the key should be pressed at (in ms)
    if(shifted(element.key)){
        robot.keyTap(element.key,"shift")
    }else{
        robot.keyTap(element.key)
    }
}, element.deltaTime);

这不是这里的确切程序,因为解释起来需要很长时间,但它解决了大部分问题。基本上,我试图在很短的时间内运行大量的按键。

这里的问题是,robot.js 会花时间敲击键,并延迟其他键的执行直到它完成,留下一个非常慢的结果。注释掉robot.keyTap() 函数会更快地运行程序,但你知道,它不会敲击按键。

任何帮助表示赞赏,我真的很想让这个工作快速。

4

1 回答 1

1

根据这个 github issue,这个问题在 Windows 系统上表现出来 - 调用.keyTap可能导致数十或数百毫秒的阻塞延迟。

虽然该修复已合并到主存储库中,但 NPM 版本尚未更新和发布,因此使用 RobotJS 的人现在仍会遇到它 - 除非他们通过运行手动安装修复版本:

npm install git+https://github.com/octalmage/robotjs.git

希望以上内容不会无限期地被需要,最终将发布一个新版本,以便npm install robotjs将来轻松解决这个问题。

于 2022-01-01T01:42:33.167 回答