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

问题描述:

我想在NodeJS的后台运行进程,等待计算机不使用10分钟。我的意思是用户不要触摸键盘或鼠标。如何检查计算机在NodeJS中闲置的时间?

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

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

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

你有吗?

+1

有点像键盘记录,只是没有实际记录密钥? –

+0

好主意来搜索。键盘记录器+鼠标记录器 – Aminadav

+0

嗯......不知道这是一个好主意,它将是点击任何与键盘记录器相关的东西 –

我能够使用ioregfrom 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中工作。