Thursday, February 02, 2006

Jak vyřadit z činnosti tlačítko Close

Potřebujete, aby vaše aplikace nešla ukončit? Pak vám může pomoci následující tip, který znemožní použití uzavíracího tlačítka okna a odstraní položku Zavřít ze systémového menu okna. V kombinaci s vhodným přesměrováním klávesové zkratky ALT-F4 v nastavení událostí hlavního formuláře a za použití triku, který schová aplikaci po stisku CTRL-ALT-DEL (viz druhý díl našeho seriálu), se stane aplikace (téměř) neukončitelnou. :)
procedure DisableClose(okno:string);
var hwndHandle : THANDLE;
hMenuHandle : HMENU;

begin
hwndHandle := FindWindow(nil, okno);
if (hwndHandle <> 0) then
begin
hMenuHandle := GetSystemMenu(hwndHandle, FALSE);
if (hMenuHandle <> 0) then DeleteMenu(hMenuHandle, SC_CLOSE, MF_BYCOMMAND);
end;
end;