Javascript 当应用程序位于后台时,使用电子条形码扫描仪

Javascript 当应用程序位于后台时,使用电子条形码扫描仪,javascript,electron,keyboard-shortcuts,barcode-scanner,keydown,Javascript,Electron,Keyboard Shortcuts,Barcode Scanner,Keydown,我有一个电子应用程序和一个条形码扫描器,它像键盘一样提供扫描输入。因此,我可以使用像textInput这样的事件,这很好。 但如果应用程序没有焦点,我也希望我的应用程序对输入做出反应 我发现了类似于全局快捷方式: app.on('ready', () => { // Register a 'CommandOrControl+X' shortcut listener. const ret = globalShortcut.register('CommandOrContr

我有一个电子应用程序和一个条形码扫描器,它像键盘一样提供扫描输入。因此,我可以使用像
textInput
这样的事件,这很好。 但如果应用程序没有焦点,我也希望我的应用程序对输入做出反应

我发现了类似于
全局快捷方式

   app.on('ready', () => {
    // Register a 'CommandOrControl+X' shortcut listener.
    const ret = globalShortcut.register('CommandOrControl+X', () => {
      console.log('CommandOrControl+X is pressed')
    })

    if (!ret) {
      console.log('registration failed')
    }

    // Check whether a shortcut is registered.
    console.log(globalShortcut.isRegistered('CommandOrControl+X'))
  })
但我无法为扫描的代码定义
全局快捷方式。例如,扫描仪给我输入
43324
。无法为此定义
全局快捷方式

另一个想法是扫描触发
windows键盘键+1
的代码,因为这会将任务栏中的第一个应用程序带到前台,但它也不起作用,而且是一种肮脏且不切实际的解决方案


有没有其他方法来完成这项任务?

据我所知,您不能直接通过electron来完成,您需要创建自己的(本机)包装器。此外,考虑到应该处理超时,因为来自条形码扫描仪的键盘事件不是唯一的,它会触发每个输入字符的事件,所以也要注意这一点。我在以前的应用程序中所做的是监听(全局)窗口的按键事件,并使用超时,收集整个条形码并检索它。但是,这并不能解决当应用程序处于后台时它应该工作的问题。也许,您可以查看以下内容:。在electron的主线程中侦听一个通用键盘事件,然后通过IPC触发渲染器以完成实际需要的操作。