javascript - 从 Electron 应用程序发送 key ?

标签 javascript node.js keyboard electron

我能找到的唯一与此相关的是sendInputEvent .

它有几个问题。

  1. 看来只能从主窗口线程调用。我需要当有人单击应用程序中的按钮时发生这种情况。

  2. 即使在主窗口线程中,它似乎也根本不起作用。例如,这似乎没有做任何事情:

代码:

setTimeout(function() {
    win.webContents.sendInputEvent({keyCode: 'Tab', type: 'keyDown', modifiers: ['alt']});
}, 3000);
  • 我还想在 alt-tab 之后发送一些按键,API 表示该函数仅在窗口获得焦点时才起作用。
  • 看起来RobotJS可能可以解决这个问题,但是对于其他语言中的一行代码(例如SendKeys.Send)来说似乎有点粗暴。而且看起来它需要手动构建它。总而言之,如果可能的话,我会尽力将绝对依赖计数保持在最低限度。

    有什么想法吗?

    最佳答案

    我同意 RobotJS 是这项任务的野兽,相反我会选择 node-key-sender

    我也不会发送 ALT-TAB 击键,而是使用 window.hide()window.minimize。您可以在这里阅读更多信息:Electron API docs for minimize() and hide()

    它具有您需要的所有功能,甚至在您从 Electron 窗口上松开焦点后也能正常工作。唯一需要注意的是它在幕后使用 Java 运行时

    关于javascript - 从 Electron 应用程序发送 key ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48471933/

    相关文章:

    javascript - 使用 JS 随机排序 div 元素列表

    javascript - 如何使用带有严格 : false schema? 的 mongoose 将字段添加到 mongoDB 文档中

    javascript - Restify 静态服务暴露其他文件

    javascript - 使用 Phonegap 访问软键盘按钮

    keyboard - 您如何纠正重复的打字错误?

    safari - iOS10 Safari 键盘弹出窗口

    javascript - 如果父窗口重定向到其他页面,如何检查子窗口是否存在

    javascript - PHP生成jQuery——效率

    javascript - 在 WebGL 中从 Float32Array 到 Uint16Array 的转换

    javascript - 如何获取js文件中的pem文件