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 . Ehhez hozzon létre egy eseménykezelő pass.OnKeyRgess:

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 . A funkció kikapcsolásához, hozzon létre egy eseménykezelő OnCloseQuery fő formája és adjuk hozzá a következő kódot:

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);




Kapcsolódó cikkek