如何从Electron应用程序检测桌面空闲时间?

GJ.*_*GJ. 6 javascript electron

我需要我的Electron应用程序响应用户在一段时间内变为空闲(没有鼠标或键盘输入到操作系统上的任何程序).

如何根据这些空闲时间数据触发功能?

Fre*_*ell 5

有些人编写了节点库,这些库与 OSX、Windows 和 Linux 的本机平台代码挂钩来实现这一点。

我最终使用这个库在我的电子应用程序中完成了同样的事情:https : //github.com/paulcbetts/node-system-idle-time

它在 npm 上发布为 @paulcbetts/system-idle-time

我在 OSX 上对其进行了测试,在那里似乎运行良好。

我最初确实收到“模块版本不匹配预期 50 得到 46”错误,但运行此命令将其清除:

npm rebuild --runtime=electron --target=1.4.3 --disturl=https://atom.io/download/atom-shell --abi=49

用您使用的任何版本的电子替换目标。


bit*_*voc 5

你总是可以通过使用检测Linux上的空闲时间XScreenServerGetLastInputInfo在Windows和CGEventSourceSecondsSinceLastEventType在Mac

我已经使用这些API 发布了桌面空闲状态,您可以检查源代码https://github.com/bithavoc/node-desktop-idle

更新:

Electron 3用户可以使用电源监视器API来实现相同的目标:https : //electronjs.org/docs/api/power-monitor


小智 4

由于电子使用节点,您应该检查RobotJS。这些东西是特定于平台的,因此它确实需要一些其他依赖项,但您可以监视鼠标/键盘并查看它是否已更改或控制它(因此得名)。