Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.03.2011, 19:08   #1
tsar_
Форумчанин
 
Аватар для tsar_
 
Регистрация: 06.01.2011
Сообщений: 369
Радость Завершение работы Windows

Всем привет. Пишу по-тихоньку прогу, в которой необходимо отследить завершение Windows, выполнить кое-какие действия (типа вывода на экран сообщения "не забудь флешку", у нас часто их забывают) и после согласия юзера послать сообщение винде завершать работу.
Так вот, мне нужно программно отследить, как именно юзер завершает работу Windows (перезагрузка, завершение сеанса и т.д.) и чтобы в сообщении винде было то же самое.
Полазил по инету, нашел некоторую информацию о перехвате завершения винды (обработка WM_QUERYENDSESSION), научился с дисками немного работать, про исходящие сообщения почитал.
Жду советов...
Программирую по необходимости
tsar_ вне форума Ответить с цитированием
Старый 23.03.2011, 20:24   #2
Человек_Борща
Старожил
 
Аватар для Человек_Борща
 
Регистрация: 30.12.2009
Сообщений: 11,426
По умолчанию

Я думаю никак...
Перезагрузка и выключение, в этих случаях посылается WM_QUERYENDSESSION.
В случе завершения сеанта во второй параметр WM_QUERYENDSESSION идёт проверка на ENDSESSION_LOGOFF.
Подробнее:
Цитата:
Сообщение от Delphi 7 - Windows SDK
The WM_QUERYENDSESSION message is sent when the user chooses to end the Windows session or when an application calls the ExitWindows function. If any application returns zero, the Windows session is not ended. Windows stops sending WM_QUERYENDSESSION messages as soon as one application returns zero.

After processing this message, Windows sends the WM_ENDSESSION message with the wParam parameter set to the results of the WM_QUERYENDSESSION message.

WM_QUERYENDSESSION
nSource = (UINT) wParam; // source of end-session request
fLogOff = lParam // logoff flag


Parameters

nSource

Reserved for future use.

fLogOff

Value of lParam. Indicates whether the user is logging off or shutting down the system. Supported values include: ENDSESSION_LOGOFF.
Только при спящем режиме это вроде как не отсылается, а всё сбрасывается на винт.

Последний раз редактировалось Человек_Борща; 23.03.2011 в 20:38.
Человек_Борща вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C# BackgroundWorker - завершение работы потока Lastsummer Помощь студентам 2 16.03.2011 18:04
завершение работы файла grafgrial Общие вопросы Delphi 8 15.08.2010 20:33
Завершение работы чужой программы Viteef Win Api 12 24.09.2007 12:31
завершение работы оператора If Noor Общие вопросы C/C++ 1 14.03.2007 10:07