Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 2007.12.30;
Скачать: [xml.tar.bz2];

Вниз

перехват WM_QUERYENDSESSION   Найти похожие ветки 

 
aleko   (2007-12-03 19:45) [0]

Доброго времени суток, уважаемые Мастера. Подскажите - при перехвате сообщения WM_QUERYENDSESSION пытаюсь запустить cmd.exe - пишет не могу инициализировать приложение... :( Можно ли как-то его побороть?


 
clickmaker ©   (2007-12-03 19:47) [1]

Return Values
If an application can terminate conveniently, it should return TRUE; otherwise, it should return FALSE.

Remarks
By default, the DefWindowProc function returns TRUE for this message

(c) MSDN

Если вернешь true или отдашь DefWindowProc, то винда продолжит выгружаться, отсюда и "не могу инициализировать приложение"


 
aleko   (2007-12-03 19:58) [2]

Я впихнул выброс сообщения ShowMessage - выгрузка останавливается, так как работа моей программы не завершается. А потом запуск cmd. Но все равно - "не могу инициализировать"........ или нужно конкретно вернуть FALSE?


 
Skyle ©   (2007-12-04 07:12) [3]

it SHOULD return false.

Если ты в своей программе просто тормозишь, то через определённое время (по дефолту 5 секунд) твой процесс просто сдохнет и всё.
А если ты вернёшь FALSE, то завершение работы прекратиться.


 
homm ©   (2007-12-04 07:19) [4]

> [3] Skyle ©   (04.12.07 07:12)
> то через определённое время (по дефолту 5 секунд)

ну конечно. 20 по дефолту для сервисов. А приложения никто автоматом грохать не будет, пользователю выведится сообщение сначала с обратным отсчетом, потом просто с предложением закрыть.


 
Skyle ©   (2007-12-04 07:45) [5]

> homm ©   (04.12.07 07:19) [4]
Уточнение > Skyle ©   (04.12.07 07:12) [3]

Для каждого процесса, владеющего окном верхнего уровня, Csrss посылает сообщения WM_QUERYENDSESSION всем его потокам с циклом выборки Windows-сообщений. Если поток возвращает TRUE, процесс завершения работы системы продолжается. Тогда Csrss посылает потоку сообщение WM_ENDSESSION с требованием завершить свою работу. Csrss ждёт завершения потока в течение времени, указанного в NKCU\Control Panel\Desktop\NungAppTimeout (по умолчанию - 5000 мс). Если в течение указанного времени поток не завершается, Csrss открывает диалоговое окно ....(вывод этого окна можно отключить, присвоив параметру NKCU\Control Panel\Desktop\AutoEndTasks значение, равное 1). Диалоговое окно уведомляет пользователя о том, что корректное завершение данной программы невозможно, и предлагает принудительно завершить процесс или отменить завершение работы системы (таймаут для этого диалогового окна не предусмотрен, а значит, на этом этапе запрос на завершение может ждать бесконечно долго).

© Соломон, Руссинович, "Внутреннее устройство Windows"


 
aleko   (2007-12-04 18:39) [6]

..все понятно, спасибо за помощь.. :)



Страницы: 1 вся ветка

Форум: "Начинающим";
Текущий архив: 2007.12.30;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.008 c
15-1196037648
PiterPen
2007-11-26 03:40
2007.12.30
Компиляция функций с использованием SSE и 3DNow!


6-1176882806
dreamse
2007-04-18 11:53
2007.12.30
Вопрос по компоненту IdTCPClient


9-1163886978
Vga
2006-11-19 00:56
2007.12.30
Паки в играх


15-1196462270
Petr V. Abramov
2007-12-01 01:37
2007.12.30
.Net 2-й fw


15-1195599977
begin_end
2007-11-21 02:06
2007.12.30
тут идея родилась такая





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский