Как определить клавиши клавиатуры с помощью C # - PullRequest
1 голос
/ 21 сентября 2009

У меня есть приложение C #, работающее на заднем плане. Теперь я хочу остановить это приложение, когда система заблокирована. Как мне это сделать. Любая помощь по этому вопросу очень ценится.

Спасибо, Хьюген, за решение. Не могли бы вы предложить мне, если мы должны включить какие-либо Dll для обработки "Microsoft.Win32.SystemEvents.SessionSwitch" этого события? И в каком слое должен находиться этот код. Я думаю, что это на бизнес-уровне. Любое предложение, связанное с этим?

1 Ответ

9 голосов
/ 21 сентября 2009

Легко. Создайте обработчик события для

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
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...