Re: [ot] poszukuje programu do wyswietlania komunikatow przedwylaczeniemwindows

Autor: Wojciech \ <spook.no_at_spam.please.op.pl>
Data: Tue 12 Jul 2011 - 22:12:21 MET DST
Message-ID: <op.vyivqvur16fuhf@stacjonarny>
Content-Type: text/plain; charset=iso-8859-2; format=flowed; delsp=yes

Dnia 12-07-2011 o 20:28:18 Radosław Sokół <rsokol@magsoft.com.pl>
napisał(a):

> W dniu 05.07.2011 11:12, Wojciech "Spook" Sura pisze:
>> WM_QUERYENDSESSION
>> http://msdn.microsoft.com/en-us/library/aa376890(v=vs.85).aspx
>>
>> <cytat>
>> The WM_QUERYENDSESSION message is sent when the user chooses to end the
>> session or when an application calls one of the system shutdown
>> functions. If any application returns zero, the session is not
>> ended. The system stops sending WM_QUERYENDSESSION messages as soon as
>> one application returns zero.
>> </cytat>
>>
>> Pozdrawiam -- Spook.
>
> Gratulacje. Znalazłeś sposób, o którym pisałem -- powodujący
> automatyczne zamknięcie komunikatu po kilku/kilkunastu sekun-
> dach od jego pojawienia się.

Bo komunikat trzeba wyświetlić asynchronicznie, a nie synchronicznie.
Jeśli w funkcji obsługującej komunikat wyświetli się wiadomość, to system
nie otrzyma odpowiedzi i będzie dalej zamykał system (przyjmując, że
aplikacja się powiesiła). W momencie otrzymania komunikatu trzeba
uruchomić nowy wątek, który wyświetli wiadomość dla użytkownika, zaś
funkcja powinna zwrócić systemowi zero i zakończyć działanie - wówczas
zamykanie systemu zostanie przerwane.

> Windows od dawna jest na to za sprytny i zabija aplikacje,
> które się "zawieszają" po otrzymaniu WM_QUERYENDSESSION na
> zbyt długo.
>
> Poza tym oczywiście przy domyślnej w Vista/7 hibernacji
> WM_QUERYENDSESSION w ogóle nie jest rozsyłane.

WM_POWERBROADCAST

http://msdn.microsoft.com/en-us/library/Aa373247

Pozdrawiam -- Spook.

-- 
Używam klienta poczty Opera Mail: http://www.opera.com/mail/
Received on Tue Jul 12 22:15:02 2011

To archiwum zostało wygenerowane przez hypermail 2.1.8 : Tue 12 Jul 2011 - 22:42:00 MET DST