如何在NodeJS中快速发送多个击键

时间:2019-07-12 23:23:19

标签: node.js key midi keystroke piano

因此,我一直在研究一个脚本,该脚本获取MIDI文件并在Virtual Piano上自动播放它们。但是,我遇到的主要问题是发送击键,我设法能够使用RobotJS一次发送一次击键,但这对于尖锐的琴键和弦来说成为一个问题。要发送快捷键,您不仅要发送大写字母,还必须发送带有修饰符shift的小写字母。您一次也只能发送一个,因此最终结果是我对和弦中的所有琴键进行循环,就像快速扫动琴键的从左到右,而不是同时按下所有和弦一样,听起来很恐怖。我也尝试过Node Key Sender,但很快就摆脱了它,因为它产生了成千上万个Java进程并使我的PC崩溃了。

有人对此有任何建议或了解更好的方法吗?

1 个答案:

答案 0 :(得分:0)

When using the modifiers (alt, shift, ctrl) with robotjs,而不是使用修饰符:

robot.keyTap("a","shift")

切换修改器,点击所需的键,然后取消切换修改器。

const play = (key, mod) => {
    if (mod) { 
        robot.keyToggle(mod, "down")
        robot.keyTap(key)
        robot.keyToggle(mod, "up")
    } else {
        robot.keyTap(key)
    }
}