在屏幕键盘上构建NodeJS电子,无法发送KeyStroke

时间:2016-02-09 18:00:02

标签: java node.js electron

所以这个想法是这样的:为计算机构建一个屏幕键盘应用程序,可以变成像联想瑜伽这样的平板电脑。跨平台的东西,所以我们不必忍受Windows 10。

所以我在Linux Mint 17.3上安装了带有Electron的NodeJS用于窗口管理。我的窗户和元素都工作得很好,但是当我把按键放到另一个应用程序中时,我会陷入困境。

到目前为止,我唯一的想法是使用一个使用Robot(kbm-robot NodeJS组件)的外部Java jar来发送系统范围的击键。首先发送alt和tab,然后发送我想要的密钥,但需要很长时间(按键)并且非常不稳定(丢失正确的窗口焦点等)。

有没有人有更稳定的想法?仅接受Linux解决方案!

如果有人对这个来源感兴趣,我会很乐意把它放在某个地方。

2 个答案:

答案 0 :(得分:0)

也许你可以制作一个node-gyp包使用:

xdotool key <key>

<key>可以是aF1Control+A

Source

编辑:虽然它看起来并不像电子那样没有焦点选项,所以我不确定你能做什么为此。

答案 1 :(得分:0)

您可以尝试替代建议的'kbm-robot'。它是一个非常小且仍然跨平台的库,可以将密钥发送到您的操作系统,称为“node-key-sender”。

使用npm install --save-dev node-key-sender安装。

使用以下方法将键发送到键盘:

var ks = require('node-key-sender');
ks.sendKey('a');

查看文档页面了解其他键:https://www.npmjs.com/package/node-key-sender