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

时间:2015-10-28 18:09:00

标签: javascript electron

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

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

4 个答案:

答案 0 :(得分:5)

您始终可以使用Windows上的XScreenServerGetLastInputInfo和Mac上的CGEventSourceSecondsSinceLastEventType来检测Linux上的空闲时间

我已使用这些API发布了desktop-idle,您可以查看源代码https://github.com/bithavoc/node-desktop-idle

<强>更新

  

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

答案 1 :(得分:4)

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

答案 2 :(得分:3)

有些人编写了一些节点库,这些节点库挂钩到OSX,Windows和Linux的本机平台代码中,以实现此目的。

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

它发布于@pm @paulcbetts / system-idle-time

我在OSX上测试了它,似乎在那里工作正常。

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

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

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

答案 3 :(得分:1)

查看Electron Power monitor API's并使用

powerMonitor.getSystemIdleTime()