Обнаружение активности пользователя на mac os x

Я использую функцию IOPMSchedulePowerEvent для планирования событий Sleep или Wake-Events и зарегистрировал своего демона с помощью IORegisterForSystemPower для получения изменений состояния питания. Все работает нормально!

Когда система переходит в спящий режим, а затем просыпается в запланированное время, мой демон выполняет некоторую работу, и после этого система должна снова перейти в спящий режим.

Теперь мои вопросы:

  1. Как я могу определить, была ли система разбужена пользователем или в запланированное время?

  2. Как я могу определить, если пользователь в настоящее время работает с системой, чтобы демон не переводил его в спящий режим???

Спасибо, Нобик.


person Nobik    schedule 27.05.2010    source источник


Ответы (1)


Существует простой способ обнаружить различные формы взаимодействия с пользователем: с помощью CGEventSourceCounterForEventType вы можете запрашивать количество нажатий клавиатуры или движений мыши с момента загрузки. Делая это через равные промежутки времени и сравнивая подсчеты, вы можете обнаружить взаимодействие.

person Nikolai Ruhe    schedule 27.05.2010
comment
Это хорошая идея, спасибо, но я ищу более простой способ сделать это. Windows дает мне IsSystemResumeAutomatic-Function, чтобы получить информацию. Есть ли аналогичная функция для Mac? - person Nobik; 28.05.2010