6

我想在 NodeJS 的后台运行一个进程,等待计算机闲置 10 分钟。我的意思是用户不要触摸键盘或鼠标。

换句话说:我想在任何窗口中监听键盘和鼠标事件,并在它发生时通知我的应用程序。

对于这个任务,我可以使用普通节点、nw.js 或电子。

我认为我必须使用 C++、本机模块和 DLL。但我希望有一个更好更简单的解决方案。

你有?

4

4 回答 4

2

您可以尝试https://github.com/bithavoc/node-desktop-idle,它适用于 macOS、Windows、Linux、FreeBSD 和 OpenBSD。我为 Electron 构建了它,但它通常在 Node.js 中工作。

于 2017-11-28T22:31:44.970 回答
1

我到达这里以某种方式在电子中搜索相同的东西,如果你也继续,这就是我从Electron Power monitor API 中找到它的方式

const {powerMonitor} = require('electron'); 
const idle = powerMonitor.getSystemIdleTime() // it returns in seconds when I am writing this
console.log('Current System Idle Time - ', idle); 
于 2020-09-14T08:04:58.467 回答
1

有一个节点模块:https ://github.com/paulcbetts/node-system-idle-time

于 2016-08-02T04:51:12.357 回答
0

我能够使用ioreg 这个先前的答案获得用户在 OSX 上的空闲时间。

var child_process = require('child_process');

function idleTime(callback) {
    var command = `ioreg -c IOHIDSystem | awk '/HIDIdleTime/ {print $NF/1000000000; exit}'`;
    child_process.exec(command, function(err, stdout, stderr) {
        return err ? callback(err) : callback(null, stdout.trim());
    });
}

setInterval(function() {
    idleTime(function(err, duration) {
        console.log(`idle for ${Math.round(duration)} seconds`)
    })
}, 1000);
于 2016-08-02T04:58:48.770 回答