Delphi World - это проект, являющийся сборником статей и малодокументированных возможностей  по программированию в среде Delphi. Здесь вы найдёте работы по следующим категориям: delphi, delfi, borland, bds, дельфи, делфи, дэльфи, дэлфи, programming, example, программирование, исходные коды, code, исходники, source, sources, сорцы, сорсы, soft, programs, программы, and, how, delphiworld, базы данных, графика, игры, интернет, сети, компоненты, классы, мультимедиа, ос, железо, программа, интерфейс, рабочий стол, синтаксис, технологии, файловая система...
Предотвратить завершение работы Windows

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch

*****English*****

The WM_QUERYENDSESSION message is sent to all applications when the user chooses to end the session or when an application calls the ExitWindows function.
If any application returns zero, the session is not ended. The system stops sending WM_QUERYENDSESSION messages as soon as one application returns zero.
After processing this message, the system sends the WM_ENDSESSION message with the wParam parameter set to the results of the WM_QUERYENDSESSION message.

*****Deutsch*****

Windows sendet die WM_QUERYENDSESSION Nachricht an alle laufenden Anwendungen und wartet auf deren Antwort.
Wenn irgendeine Anwendungen 0 zurьckgibt endet die Session nicht ansonsten sendet Windows eine WM_ENDSESSION Nachricht an alle Anwendungen.
Jede Anwendung, die darauf mit TRUE antwortet, kann jederzeit von Windows beendet werden.

Windows NT/2000/XP: When an application returns TRUE for this message, it receives the WM_ENDSESSION message and it is terminated, regardless of how the other applications respond to the WM_QUERYENDSESSION message.

Windows 95/98/Me: After all applications return TRUE for this message, they receive the WM_ENDSESSION and they are terminated.
 private
   procedure WMQueryEndSession (var Msg : TWMQueryEndSession); message WM_QueryEndSession;
 end;

 Implementation

 procedure TForm1.WMQueryEndSession (var Msg : TWMQueryEndSession);
 begin
   if MessageDlg('Close Windows now/ Windows beenden?',
                             mtConfirmation,
                             [mbYes,mbNo], 0) = mrNo then
       Msg.Result := 0
    else
       Msg.Result := 1;
 end;
Проект Delphi World © Выпуск 2002 - 2004
Автор проекта: ___Nikolay