从主进程捕获鼠标移动事件(电子)

时间:2018-03-29 16:09:21

标签: javascript events vue.js mouseevent electron

我想用Electron从主进程(Not render)中捕获鼠标移动事件 现在,我正在做一个setInterval循环来捕捉鼠标位置,但这不是很干净(并且来自渲染过程)......

它看起来像这样:

setInterval(function () {
   let mousePos = SCREEN.getCursorScreenPoint()
}, 0)  

所以......我怎样才能从主要过程中捕获事件?
当鼠标在窗口外时,我想知道鼠标的位置

2 个答案:

答案 0 :(得分:1)

您可以从主进程中获取与在渲染器进程中完全相同的鼠标位置,唯一需要等到发布应用程序模块的ready事件。

所以,例如:

// wait until ready event is fired
electron.app.on('ready', function() {

    // get the mouse position
    let mousePos = electron.screen.getCursorScreenPoint();
    console.log(mousePos);
});

https://electronjs.org/docs/api/screen#screengetcursorscreenpoint

答案 1 :(得分:0)

您可以在浏览器窗口中添加一个挂钩,以侦听Windows WM_MOUSEMOVE消息(在这种情况下,消息代码为0x200 https://docs.microsoft.com/en-us/windows/desktop/inputdev/wm-mousemove)。

browserWindow.hookWindowMessage(0x200, () => {
    // Your function here
})