Sunday, February 12, 2006

Detekce ukončení systému

S předchozí kapitolou souvisí i následující tip. Ukážeme si, jak zjistit, že se cizí aplikace (např. instalátor) nebo prostě samotný systém snaží ukončit Windows. Pokud naše aplikace zrovna provádí nějakou velmi důležitou činnost, můžeme vypnutí systému i zabránit a nebo včas zajistit případné uložení všech důležitých dat. Je to vlastně velice snadné. Když se Windows ukončují, odešlou všem běžícím aplikacím zprávu WM_QUERYENDSESSION, kterou "zachytíme" událostí OnCloseQuery hlavního formuláře aplikace. Parametr CanClose nastavíme na True, pokud chceme systému dovolit ukončení, a nebo False pro opačný efekt. Jednoduchý zdrojový kód může vypadat kupříkladu takto: