如何检查计算机在NodeJS中闲置的时间?
问题描述:
我想在NodeJS的后台运行进程,等待计算机不使用10分钟。我的意思是用户不要触摸键盘或鼠标。如何检查计算机在NodeJS中闲置的时间?
换句话说:我想听任何窗口中的键盘和鼠标事件,并在发生事件时通知我的应用程序。
对于这个任务,我可以使用普通节点,或nw.js或电子。
我认为我必须使用C++,本机模块和DLL。但我希望有一个更好和简单的解决方案。
你有吗?
答
我能够使用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);
答
您可以尝试https://github.com/bithavoc/node-desktop-idle,它适用于Linux,OSX和Windows。我为Electron构建它,但它通常在Node.js中工作。
有点像键盘记录,只是没有实际记录密钥? –
好主意来搜索。键盘记录器+鼠标记录器 – Aminadav
嗯......不知道这是一个好主意,它将是点击任何与键盘记录器相关的东西 –