我正在使用iohook Node 库来监听全局的鼠标和键盘事件。
实际上,我需要两个库实例来处理一些逻辑问题。
现在我的代码看起来像这样
const ioHook = require('iohook');
const ioHook2 = require('iohook');
ioHook.start();
ioHook.on('mouseclick', this.onMouseActivity);
ioHook2.start();
ioHook2.on('mouseclick', this.onMouseActivity2);
现在,执行完一些逻辑后,我需要停止第一个监听器。
因此,我执行以下代码,
ioHook2.stop();
但是,这停止了我所有的勾当。
我的预期结果是第一个ioHook不应该关闭并正常工作。
这是因为两者使用的事件发射器相同吗?
像
mouseclick
,keypress
,mousemove
等。如果是这样,我可以删除特定于ioHook实例的特定列表器吗?
谢谢您的帮助。这困扰了我好几个小时。
最佳答案
没有第一个和第二个,只有一个钩子(Hook)对象。 CommonJS模块只评估一次,所以ioHook === ioHook2
。start
开始监听已注册的钩子(Hook),而stop
停止监听它们。
由于iohook
是事件发射器,因此可以在需要时与其他任何事件发射器一样取消订阅监听器:
ioHook.on('mouseclick', onMouseActivity);
...
ioHook.off('mouseclick', onMouseActivity);
关于javascript - 我可以在 Electron 应用程序中使用两个ioHook事件吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56045673/