【问题标题】:Can I use two ioHook event in my electron app?我可以在我的电子应用程序中使用两个 ioHook 事件吗?
【发布时间】:2019-05-08 16:59:03
【问题描述】:

我正在使用 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 不应该关闭和工作。

这是因为两者使用的事件发射器相同吗? 比如mouseclick,keypress,mousemove等等……?

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

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

【问题讨论】:

    标签: javascript node.js electron eventemitter


    【解决方案1】:

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

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

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

    ioHook.on('mouseclick', onMouseActivity);
    
    ...
    
    ioHook.off('mouseclick', onMouseActivity);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-13
      • 1970-01-01
      • 1970-01-01
      • 2013-12-20
      • 1970-01-01
      • 2013-08-28
      • 1970-01-01
      • 2012-03-30
      相关资源
      最近更新 更多