четверг, ноября 19, 2009

А пока мы отошли...

Недавно писал одну утилитку, которой нужно было отслеживать заблокирован ли компьютер.  Нашёл очень простой способ это узнать: достаточно лишь подписаться на событие SessionSwitch класса SystemEvents, который находится в пространсве имён Microsoft.Win32.

SystemEvents.SessionSwitch += new SessionSwitchEventHandler(SystemEvents_SessionSwitch);
...
void SystemEvents_SessionSwitch(object sender, SessionSwitchEventArgs e)
{
        switch (e.Reason)
        {
                case SessionSwitchReason.SessionLock:
                //компьютер заблокирован
                case SessionSwitchReason.SessionUnlock:
                //компьютер разблокирован
        }
}

Понадобитсья может в довольно большом количестве случаев, например запускать скачивание, пока компьютер заблокирован или же какую-то ресурсоёмкую задачу.

Комментариев нет:

Отправить комментарий