Я пытаюсь создать службу Windows с .net и C#, которая отслеживает активность пользователя и измеряет, сколько времени пользователь тратит на компьютер. Мне нужно знать, когда он входит в систему, блокирует устройство, кладет устройство спать и т. Д. Служба затем включает/выключен таймер в зависимости от действия и сохраняет период в базу данных.
< P> для входа в систему, подпись, спячка и выключение ПК, все работает нормально, но я не могу поймать, когда укладываю устройство спать и когда оно просыпается от сна. Я пытался переопределить OnPowerevent и проверить, какова стоимость PowerBroadcastStatus, но это не работает для PowerBroadcastStatus.suspend и PowerBroadcastStatus.Resumesuspend. Он отлично работает для PowerBroadcastStatus.powerStatusChange, когда я отключаю адаптер или подключен, например. Сон и когда он просыпается. -TroubleShooterer id = 1 (устройство пробуждения устройства), когда я кладу компьютер спать или когда он просыпается, так что теперь я не знаю, является ли это проблемой с моим ПК или кодом. < /P>
Кроме того, я попробовал класс SystemEvents, но это также не сработало, и он не работал для SessionChange до этой проблемы. IS: < /p>
protected override bool OnPowerEvent(PowerBroadcastStatus powerStatus)
{
base.OnPowerEvent(powerStatus);
EventLog.WriteEntry(SERVICENAME, powerStatus.ToString());
return base.OnPowerEvent(powerStatus);
}
< /code>
CanHandlePowerEvent установлен на TRUE в конструкторе. Я буду благодарен за любые советы.
Подробнее здесь: https://stackoverflow.com/questions/794 ... resumesusp
Невозможно поймать PowerBroadCastStatus.suspend и PowerBroadcastStatus.ResumESuspend в службе Windows с использованием C ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение