我需要使用我的Electron应用程序来响应用户在一段时间内变为空闲状态(没有鼠标或键盘输入到操作系统上的任何程序)。
如何根据这些空闲时间数据触发功能?
答案 0 :(得分:5)
您始终可以使用Windows上的XScreenServer,GetLastInputInfo和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()