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

10
我希望能够在Electron的主进程(而不是渲染进程)中捕获鼠标移动事件。
现在,我正在使用setInterval循环来捕获鼠标位置,但这种方法不够优雅(而且是从渲染进程发起的)...

代码如下:

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

那么,如何从主进程中捕获事件呢?
我想知道当鼠标在窗口外时,鼠标的位置。


问题是什么? - Thomas Orlita
如何在Electron的主进程中捕获鼠标移动事件 - Owen
1
你能使用 window.addEventListener('mousemove', callback) 吗? - Roy J
1
不,因为我想知道鼠标在窗口外的位置。 - Owen
2个回答

7

您可以像在渲染进程中一样从主进程获取鼠标位置,唯一需要注意的是您需要等待app模块发出的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


是的,但我想触发鼠标移动事件(当CursorScreenPoint更改时)。 - Owen
2
在 Electron 中没有这样的事件,所以您需要每次存储位置并将其与之前的值进行比较,如果发生更改,则触发自己的函数。 - Thomas Orlita

1

在使用Windows 7时,只有在拖动时才能生效,并且在右下角显示的分辨率为1535x863而不是1920x1080。 - teg_brightly
这只是偶尔触发的。 - Jonas Johansson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接