5 votes

Comment vérifier si l'ordinateur est inactif dans NodeJS ?

Je veux exécuter un processus en arrière-plan dans NodeJS, qui attend que l'ordinateur ne soit pas utilisé pendant 10 minutes. Je veux dire que l'utilisateur ne touche pas le clavier ou la souris.

En d'autres termes : Je veux écouter les événements du clavier et de la souris dans n'importe quelle fenêtre, et notifier mon application quand cela se produit.

Pour cette mission, je peux utiliser un simple nœud, ou nw.js ou electron.

Je pense que je dois utiliser un module C++, natif et des DLL. Mais j'espère qu'il existe une solution meilleure et plus simple.

Vous en avez ?

1voto

Vadim Macagon Points 8065

Il existe un module Node pour cela : https://github.com/paulcbetts/node-system-idle-time

0voto

tmatthews Points 10

J'ai pu obtenir le temps d'inactivité de l'utilisateur sous OSX en utilisant ioreg de cette réponse précédente .

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);

0voto

thepumpkin1979 Points 370

Vous pouvez essayer https://github.com/bithavoc/node-desktop-idle qui fonctionne sous Linux, OSX et Windows. Je l'ai construit pour Electron mais il fonctionne avec Node.js en général.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X