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触发渲染器以完成实际需要的操作。