Visual Basic – 5 zanimljivih API trikova (V deo)

Da li ste do sada već zaboravili stari dobri DOS? Najverovatnije je da je odgovor potvrdan, Windows je postao vaša preokupacija. Da li vam je dosadio multitasking? Da li želite da korisnike vaših programa zadržite samo u vašoj aplikaciji? Ponekad je jako dobro „zarobiti“ korisnike unutar vaših aplikacija, a ovo je posebno izraženo kada kreirate bezbednosne programe ili dizajnirate kompjuterske igre (kada je vrlo nezgodna stvar pritisak na „Windows“ taster). Zbog svega navedenog, da korisnike vaših programa zadržite samo u okviru date aplikacije, moraćete da sprečite korisnike u korišćenju prečica „Ctrl+Alt+Del“, „Ctrl+Esc“ (što je ekvivalentno tasteru „Win“) i prečice „Alt+Tab“. Ovo ćemo odraditi uz pomoć API funkcije SystemParametersInfo.

Funkcija SystemParametersInfo je dizajnirana za korišćenje sa aplikacijama, kao što je „Control Panel“, koja omogućava korisnicima da podešavaju radno okruženje. Sa funkcijom SystemParametersInfo možemo preuzeti ili podesiti široki spektar sistemskih parametara, kao što su: fontovi, prikaz prozora, screen saver, podešavanja miša, korisničkih profila i mnogih drugih.

Kao i kod prethodnih primera, počinjemo od deklaracije funkcije:


Private Declare Function SystemParametersInfo _
Lib "user32" Alias "SystemParametersInfoA" _
(ByVal uAction As Long, ByVal uParam As Long, _
ByRef lpvParam As Any, ByVal fuWinIni As Long) _
As Long

Konstantama naš programski kod činimo mnogo čitljivijim:


Private Const SPI_SETSCREENSAVERRUNNING = 97

Način na koji ćemo sprečiti korišćenje kombinacija „Ctrl+Alt+Del“, „Ctrl+Esc“ i „Alt+Tab“, jeste da „ubedimo“ operativni sistem da se trenutno procesira screen saver program. A evo kako to izgleda i programski:


Sub SpreciCtrlAltDelete(bDisabled As Boolean)
Dim lpvParam As Boolean
Dim X As Long

X = SystemParametersInfo _
(SPI_SETSCREENSAVERRUNNING, _
bDisabled, lpvParam, 0)

End Sub

Pratite Krstaricu na www.krstarica.com