Легко. Создайте обработчик события для
Microsoft.Win32.SystemEvents.SessionSwitch
событие. В нем проверьте свойство SessionSwitchEventArgs.Reason
на значение SessionSwitchReason.SessionLock
.
Шьям : извините, что не вернулся к вам сразу. Вам не нужно включать какие-либо специальные библиотеки DLL. Класс SystemEvents
находится в системной сборке. Принадлежит ли этот обработчик на бизнес-уровне - я полагаю, он принадлежит к какому-либо проекту, в котором содержится ваш класс обслуживания - тот, который наследуется от WindowsService.
public MyService()
{
InitializeComponent();
SystemEvents.SessionSwitch += SystemEvents_SessionSwitch;
}
void SystemEvents_SessionSwitch(object sender, SessionSwitchEventArgs e)
{
if (_isRunning)
{
// Pause
}
}