Delphi – Skrivanje aplikacije

Po default-u, svaka Windows (Delphi) aplikacija koju pokrenete ima odgovarajuฤ‡e dugme na TaskBar-u. Koriลกฤ‡enjem preฤice „Alt+Tab“, moguฤ‡e je da prelazite iz prozora jedne aplikacije u prozor druge. Ako pritisnete kombinaciju „Ctrl+Alt+Delete“, pojaviฤ‡e se dijalog prozor „Close Program“, koji sluลพi za okonฤavanje programa (End task) ili za „spuลกtanje“ Windows-a.

Da li ste se ikada zapitali kako da vaลกa aplikacija bude „nevidljiva“ za dijalog „Close Program“ (gde su izlistani svi aktivni procesi)? Pretpostavimo na primer, da ลพelite da kreirate neki usluลพni program koji ฤ‡e raditi u pozadini, tako da ga korisnik i ne primeฤ‡uje. Za ovako neลกto postoje razliฤiti naฤini, pa ฤ‡emo u okviru ovog priloga navesti jedan od brojnih.

Sledeฤ‡im kodom videฤ‡emo kako da iskoristimo snagu Windows API-ja, radi dodavanja specijalnih osobina vaลกem programu. Koristeฤ‡i API funkciju SystemParametersInfo, „prevariฤ‡emo“ Windows, tako da „misli“ za naลก program da je screen saver. Preko ove funkcije onemoguฤ‡iฤ‡emo poziv dijaloga „Close Program“ kombinacijom „Ctrl+Alt+Delete“, i prebacivanje u druge aplikacije kombinacijom „Alt+Tab“. Za primer, postaviฤ‡emo na praznu formu dva komandna dugmeta (kao na slici) i u njih ฤ‡emo ubaciti kod koji poziva API funkciju. Za prvo dugme kod ฤ‡e biti:


procedure TForm1.Button1Click(Sender: TObject);
var
OldVal : LongInt;
begin
SystemParametersInfo
(SPI_SCREENSAVERRUNNING,
Word(True),
@OldVal,
0);
end;

A za drugo dugme, ubacite sledeฤ‡i kod:


procedure TForm1.Button2Click(Sender: TObject);
var
OldVal : LongInt;
begin
SystemParametersInfo
(SPI_SCREENSAVERRUNNING,
Word(False),
@OldVal,
0);
end;

Pratite Krstaricu na www.krstarica.com