2010-05-27 31 views
1

J'utilise la fonction "IOPMSchedulePowerEvent" pour planifier Sleep ou Wake-Events et enregistré mon démon avec "IORegisterForSystemPower" pour recevoir les changements d'état d'alimentation. Tout fonctionne bien!Détection de l'activité utilisateur sur mac os x

Lorsque le système se met en veille et se réveille plus tard à l'heure planifiée, mon démon fait un peu de travail, et après, le système devrait se remettre en veille.

Maintenant, mes questions:

  1. Comment puis-je détecter, si le système a été éveilla par l'utilisateur ou par l'heure prévue?

  2. Comment puis-je détecter, si un utilisateur travaille actuellement avec le système, afin que le démon ne le mette pas en mode veille?

Merci Nobik

Répondre

3

Il y a un moyen facile de détecter diverses formes d'interaction de l'utilisateur: Utilisation CGEventSourceCounterForEventType vous pouvez interroger le nombre de presses à clavier ou la souris se déplace depuis le temps de démarrage. En faisant cela à intervalles réguliers et en comparant les comptes, vous pouvez détecter l'interaction.

+0

C'est une bonne idée, merci, mais je cherche un moyen plus facile de le faire. Windows me donne le "IsSystemResumeAutomatic-Function", pour obtenir l'information. Y a-t-il une fonction comparable pour mac? – Nobik