我可以在我的电子应用程序中使用两个 ioHook 事件吗?

Can I use two ioHook event in my electron app?

我正在使用 iohook 节点库来监听全局鼠标和键盘事件。

我实际上需要库的两个实例来处理我正在使用的某些逻辑。 现在我的代码看起来像这样

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 不应该关闭和工作。

这是因为两者使用的事件发射器相同吗? 像 mouseclickkeypressmousemove 等。?

如果是这样,我可以删除特定于 ioHook 实例的特定侦听器吗?

感谢您的帮助。这让我困扰了好几个小时。

没有第一个和第二个,只有一个钩子对象。 CommonJS 模块被评估一次,所以 ioHook === ioHook2.

start 开始监听已注册的钩子,stop 停止监听它们。

由于 iohook 是事件发射器,因此在需要时可以像任何其他事件发射器一样取消订阅侦听器:

ioHook.on('mouseclick', onMouseActivity);

...

ioHook.off('mouseclick', onMouseActivity);