Robot.js 非同步点击按键

Robot.js tap key non-synchronously

我正在使用程序包 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() 函数 运行 程序会快得多,但你知道,不会敲击按键。

感谢任何帮助,我真的很想让它快速运行。

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

虽然修复已合并到主仓库中,但 NPM 版本尚未更新和发布,因此使用 RobotJS 的人暂时仍会遇到它 - 除非他们通过 [=21= 手动安装修复版本]:

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

希望以上不会无限期地需要,最终会发布一个新版本,允许一个简单的npm install robotjs在未来解决这个问题。