HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Tetszőleges alkalmazás jelszavakat tároló TEdit komponenséből a szöveg kiolvasása


Példaprogram letöltése

4104 bájt

Amikor internethez kapcsolódunk, és megjelenik a tárcsázás ablaka, ott találunk egy olyan adatbeviteli ablakot, melybe a jelszavunkat kell beírni. Ettől az ablaktól kérhető, hogy jegyezze meg a jelszavunkat, és ilyenkor csak egyszer kell beírni. Ezt követően hónapok telhetnek el anélkül, hogy a jelszavunkat megadnánk, és ez esetben könnyen előfordulhat az, hogy elfelejtjük. Mivel ennél a TEdit-nél a PasswordChar property be van állítva, így hiába van beírva a jelszavunk, csak csillag karaktereket látunk. Jó lenne egy olyan megoldás, mely képes lenne ebből az ablakból kiolvasni az elfelejtett jelszavunkat.
Mellékelt példában készítünk egy olyan programot, mely bármely alkalmazás bármely szöveg beviteli mezőjének tartalmát képes kiolvasni akkor is, ha az egy jelszó. Ilyen adat beviteli mezővel nemcsak az internet kapcsolódás ablakánál fordul elő, hanem sok más alkalmazásban is.

A megoldáshoz felhasználjuk a múlt héten bemutatott ”Melyik ablak birtokolja a fókuszt?” című cikkben leírtakat. Ott készítettünk egy függvényt GetSystemFocus névvel, mely képes volt arra, hogy visszaadja az aktív program aktuálisan fókuszt birtokló ablakának az azonosítóját (Handle).
Ezt a függvényt felhasználva megszerezhetjük annak a TEdit komponensnek az azonosítóját is bármely alkalmazásban, mely az elfelejtett jelszavunkat tárolja.
procedure TForm1.Timer1Timer(Sender: TObject);
var
  buffer: array[0..8192] of char;
begin
  Label1.Caption:=IntToHex(GetSystemFocus, 8);
  try
Ha adott az azonosító, akkor egy egyszerű WM_GETTEXT üzenet küldéssel lekérdezhetjük az adott ablak aktuális szövegét. Ezt az üzenetet a SendMessage függvénnyel küldjük, melynek negyedik paraméterében megadott buffer területre kerül átmásolásra a szöveg.
    SendMessage(GetSystemFocus, WM_GETTEXT, 8192, integer(@buffer[0]));
    Label4.Caption:=buffer;
  except
    Label4.Caption:='-';
  end;
end;

Cikksorozat

#IDKategóriaCikk címeSorozat
1488DelphiMS SQL tárolt eljárások1. rész
1499DelphiMS SQL tárolt eljárások2. rész
1507DelphiMS SQL tárolt eljárások3. rész
1519DelphiMS SQL tárolt eljárások4. rész
1526DelphiMS SQL tárolt eljárások5. rész
1537DelphiMS SQL tárolt eljárások6. rész
1546DelphiMS SQL tárolt eljárások7. rész
1553DelphiMS SQL tárolt eljárások8. rész
1564DelphiMS SQL tárolt eljárások9. rész
1573DelphiMS SQL tárolt eljárások10. rész
1582DelphiMS SQL tárolt eljárások11. rész
1591DelphiMS SQL tárolt eljárások12. rész
1600DelphiMS SQL tárolt eljárások13. rész
1609DelphiMS SQL tárolt eljárások14. rész
1617DelphiMS SQL tárolt eljárások15. rész
1626DelphiMS SQL tárolt eljárások16. rész


Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2002 évkönyv 489. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |