如何在NodeJS中检查计算机何时空闲?

时间:2016-08-01 20:57:10

标签: node.js electron node-webkit nwjs

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

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

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

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

你有吗?

4 个答案:

答案 0 :(得分:1)

答案 1 :(得分:1)

我以某种方式到达这里搜索电子中的同一事物,如果您也继续前进,这就是我从Electron Power monitor API's中找出来的方式

const {powerMonitor} = require('electron'); 
const idle = powerMonitor.getSystemIdleTime() // it returns in seconds when I am writing this
console.log('Current System Idle Time - ', idle); 

答案 2 :(得分:0)

我可以使用ioreg from this previous answer在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);

答案 3 :(得分:0)

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