10. fejezet Bejelentkezés
Eredmény regisztrációs űrlapot kell egyeznie a szám. 10.1.
Ábra. 10.1. Formában a login programot
Bejelenti saját tagjai az osztály formák változó típusú HWND és két eljárást dolgozzon ki egy kicsit később:
H1: HWND; // változó tartalmazó ablak azonosítót
eljárás bejelentkezési (); // tömb mindenre, amíg a jelszó
procedure_check (); // helyességét ellenőrizni a jelszót
Most, a végrehajtási fejezetében megteremti az eljárásokat magukat. Első eljárás ellenőrzése:
ha pass.Text = „jelszó”, akkor // ha a jelszó helyes
// találja az azonosító Desktop
// munka lehetővé az asztali
// találja az azonosító tálcán
// lehetővé teszi a Tálca
megállítása; // zárja be a programot
end // egyébként egy üzenet jelzi, hibás jelszót
mást ShowMessage (Hibás jelszó! ');
ellenőrizze eljárás ellenőrzi a jelszó helyes. Ebben az esetben a jelszó használatos a „jelszó”. Ha a mező lépett át szót, majd kinyit az asztal és a tálca. Ezt követően, a hozzáférés minden nyitva, és mi a program elvégzése. Ha a szöveg a felhasználó által beírt nem esik egybe a helyes jelszót, akkor továbbra is igényel jelszót.
Most minden belépési eljárások:
// találja az azonosító Desktop
H1: = FindWindow ( 'Progman', nulla);
ShowWindow (h1 sw_hide.); // elrejtés Desk
// megtalálják a tálcán
H1: = FindWindow ( 'Shell_traywnd', nulla);
ShowWindow (h1 sw_hide.); // elrejteni a tálcán
H1: = FindWindow (nil, 'menedzser zadachWindows');
if (h1 <> 0), akkor PostMessage (h1, WM_QUIT, 1, 0);
Itt blokkolja az asztalon és a tálcán, majd ellenőrizze, hogy a felhasználó nem próbálta kikapcsolni a programot a Feladatkezelő használatával. Ha Feladatkezelő ablak nyitva van, csukja be.
Most már szinte nincs programozás - egyszerűen hívja eljárások ellenőrzése és bejelentkezési. Ha megnyomja az Enter gombot, egy eljárás ellenőrzése:
eljárás TForm1.Button1Click (Sender: TObject);
Annak érdekében, hogy ne zavarja a felhasználó megnyom egy gombot a forma, ami szimulálja a műveletet a gomb megnyomásával a pass területén
eljárás TForm1.passKeyPress (Sender: TObject; var Key: Char);
ha kulcs = # 13 majd // ha a gomb megnyomása
ellenőrizze; // hívja a ellenőrzési eljárás
# 13 egy kulcs kód
billentyűzet karakter és kulcskódjai A. függelék
Mert az első időmérő OnTimer eseményt csak tartalmazza a hívás bejelentkezési eljárás:
eljárás TForm1.Timer1Timer (Sender: TObject);
A második időmérő (amely Interval tulajdonság beállítása 1000), hogy adjunk egy eseménykezelő OnTimer az alábbi kódot:
eljárás TForm1.Timer2Timer (Sender: TObject);
H1: = FindWindow ( 'Progman', nulla); // Desktop keresés
ShowWindow (h1, sw_hide); // elrejtés Desk
CloseWindow (h1); // kikapcsolásához asztalon
át .SetFocus; // a kurzort a szövegmezőbe
Összecsukható asztal bezárul a rendszer Start menüben, ha nyitva van. A végén, a felhasználó nem férhet hozzá az asztalon, a tálcán a Start menüt, és feladatkezelő, de annak ellenére, hogy a program nem rendelkezik cím, akkor le lehet zárni a segítségével billentyűparancsokat
eljárás TForm1.FormCloseQuery (Sender: TObject; var CanClose: logikai érték);
Az egyetlen dolog maradt meg - biztosítja a program indításakor, adja meg az elérési útvonalát a rendszerleíró adatbázisban. Együttműködik a registry hozzá kell adni a uses való hivatkozás a nyilvántartó modul, és ezt követően hozza létre a következő eseménykezelő formák onCreate:
eljárás TForm1.FormCreate (küldő; TObject);
Reg: TRegistry; // változó együttműködni a regisztrációs
Reg.RootKey: = HKEY_CURRENT_USER; // az aktuális felhasználó
Reg .OpenKey (Software \ Microsoft \ Windows \ CurrentVersion \ Run ", true); // megnyitja az indítási szakaszban a regisztrációs
// és írjuk be a nevet és a teljes elérési utat a programunk
Reg.CloseKey; // bezárja a regisztrációs
Reg.Free; // felszabadítja a memóriát
A program most már letölthető az aktuális felhasználó számára a rendszer és a szükséges jelszót. A program cselekvési ábrán látható. 10.2.
Ablakok, üzenetek, SysUtils, Változatok, osztályok, grafika, vezérlők, Forms, párbeszédablakok, StdCtrls, ExtCtrls, Registry;
írja TForm1 = osztály (TForm)
eljárás Button1Click (Sender: TObject);
eljárás passKeyPress (Sender: TObject; var Key: Char);
eljárás FormCloseQuery (Sender: TObject; var CanClose: logikai érték);
eljárás FormCreate (Sender: TObject);
eljárás Timer1Timer (Sender: TObject);
eljárás Timer2Timer (Sender: TObject);
H1: HWND; // változó tartalmazó ablak azonosítót
eljárás bejelentkezési (); // tömb mindent, amíg a jelszó helyes
eljárás ellenőrzés (); // helyességét ellenőrizni a jelszót
ha pass.Text = „jelszó”, akkor // ha a jelszó helyes
// találja az azonosító Desktop
// munka lehetővé az asztali
// találja az azonosító tálcán
// lehetővé teszi a Tálca
megállítása; // zárja be a programot
end // egyébként egy üzenet jelzi, hibás jelszót
mást ShowMessage (Hibás jelszó! ');
// találja az azonosító Desktop
H1: = FindWindow ( 'Progman', nulla);
ShowWindow (h1, sw_hide); // elrejtés Desk
// megtalálják a tálcán
H1: = FindWindow ( 'Shell_traywnd', nulla);
ShowWindow (h1, sw_hide); // elrejteni a tálcán
H1: = FindWindow (nil, 'menedzser zadachWindows');
if (h1 <> 0), akkor PostMessage (h1, WM_QUIT, 1, 0);
eljárás TForm1.Timer1Timer (Sender: TObject);