【发布时间】:2022-01-19 16:34:38
【问题描述】:
我需要我的 Electron 应用程序在一段时间内响应用户闲置(操作系统上的任何程序都没有鼠标或键盘输入)。
如何根据此类空闲时间数据触发函数?
【问题讨论】:
标签: javascript electron
我需要我的 Electron 应用程序在一段时间内响应用户闲置(操作系统上的任何程序都没有鼠标或键盘输入)。
如何根据此类空闲时间数据触发函数?
【问题讨论】:
标签: javascript electron
您始终可以通过在 Windows 上使用 XScreenServer、GetLastInputInfo 和在 Mac 上使用 CGEventSourceSecondsSinceLastEventType 在 Linux 上检测空闲时间
我已经使用这些 API 发布了desktop-idle,您可以查看源代码https://github.com/bithavoc/node-desktop-idle
更新:
Electron 3 用户可以使用 power monitor API 来实现相同的目标:https://electronjs.org/docs/api/power-monitor
【讨论】:
有些人编写了与 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
用你正在使用的任何版本的电子替换目标。
【讨论】:
由于电子使用节点,你应该结帐RobotJS。这些东西是特定于平台的,因此它确实需要一些其他依赖项,但您可以监视鼠标/键盘并查看它是否已更改或控制它(因此得名)。
【讨论】:
查看Electron Power monitor API's并使用
powerMonitor.getSystemIdleTime()
【讨论】: