Задержка выхода из системы Windows (XP, Vista и 7) - PullRequest
2 голосов
/ 11 августа 2011

Есть ли известный, надежный способ отложить выход пользователя из системы после того, как он нажал кнопку выхода?Мне интересно, как я мог бы отложить или, возможно, отменить выход из системы, а затем выйти из приложения после истечения срока действия счетчика.

1 Ответ

2 голосов
/ 11 августа 2011

Когда происходит выход из системы, сообщение Windows WM_QUERYENDSESSION отправляется всем приложениям. Приложение может ответить на это сообщение отрицательным ответом, требуя отмены выхода из системы.

Из MDSN doc :

Приложения должны уважать намерения пользователя и возвращать ИСТИНА. От по умолчанию функция DefWindowProc возвращает TRUE для этого сообщения.

Если выключение приведет к повреждению системы или носителя, сгорело, приложение может вернуть FALSE. Тем не менее, это хорошая практика уважать действия пользователя.

В .NET эта функциональность предоставляется событием SystemEvents.SessionEnding . Если для свойства Cancel для SessionEndingEventArgs установлено значение true, запрос на отмену выхода из системы выполняется.

Часть о выходе из системы запрашивалась ранее в Программный выход пользователя из Win XP в C # .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...