Я пишу небольшой сервис, который должен регистрировать некоторые события.Однако только два из них или работают, и даже после поиска я не могу понять, почему.
Это события, которые я хочу регистрировать:
- Запуск компьютера РАБОТА
- Блокировка сеанса
- Разблокировка сеанса
- Выключение компьютера РАБОТА
Я трижды проверил, что мойсервис может перехватить эти события (я даже установил все CanHandle .. в true ..
private void InitializeComponent()
{
//
// Service1
//
this.CanHandlePowerEvent = true;
this.CanHandleSessionChangeEvent = true;
this.CanPauseAndContinue = true;
this.CanShutdown = true;
this.ServiceName = "TimeToGoService";
}
Это мой переопределенный OnSessionChange ()
protected override void OnSessionChange(SessionChangeDescription changeDescription)
{
if (changeDescription.Reason == SessionChangeReason.SessionLock)
{
startBreak();
}
else if (changeDescription.Reason == SessionChangeReason.SessionUnlock)
{
endBreak();
}
base.OnSessionChange(changeDescription);
}
startBreak () и endBreak () записывают журналы только в файл с помощью StreamWriter.
При поиске в Интернете я видел некоторых людейиспользование скрытой формы для запуска этих событий. В этом проблема?