如何检查计算机在NodeJS中闲置的时间?

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

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

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

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

你有?

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

我可以从这个以前的答案使用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); 

您可以尝试在Linux,OSX和Windows上运行的https://github.com/bithavoc/node-desktop-idle 。 我为Electron构build了它,但它一般在Node.js中工作。