HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Windows jelszó megváltoztatása


Példaprogram letöltése

7658 bájt

Ebben a cikkben a Windows bejelentkezési jelszavának programból történő megváltoztatására keresünk megoldást.
Az MPR.DLL-ben találunk egy PwdChangePasswordA nevű függvényt. Ha ezt meghívjuk a megfelelő paraméterekkel, akkor megjelenik a Windows-ból már jó ismert "Jelszó megváltoztatása" című ablak. Itt a felhasználó megadhatja az új jelszavát, amennyiben a régit helyesen beírta. Ezzel a módszerrel csak a Microsoft Networking jelszó változtatható meg.

A függvény hívásához meg kell adnunk a felhasználó nevét. Ehhez a programunk indulásakor lekérdezzük az aktuálisan bejelentkezett felhasználói nevet, majd megjelenítjük egy TEdit komponensben.
procedure TForm1.FormCreate(Sender: TObject);
var
  buf: array[0..127] of char;
  n: integer;
begin
  n:=128;
  if GetUserName(buf, n) then begin
    Edit1.Text:=buf;
  end;
end;

A PwdChangePasswordA függvény használatához be kell töltenünk az MPR.DLL-t.
...
  h:=LoadLibrary('C:\Windows\System\MPR.DLL');
...
Ha ez sikeres volt, akkor lekérdezzük a függvény címét a GetProcAddress függvénnyel és már meg is hívhatjuk azt a megfelelő paraméterekkel.
...
  if h<>0 then begin
    ChangePassword:=GetProcAddress(h, 'PwdChangePasswordA');
    if Assigned(ChangePassword) then begin
      ChangePassword('MSNP32', Handle, 0, integer(@cpi));
    end;
...
Első paraméterként a kívánt jelszótípust kell megadnunk. Az MSNP32 vonatkozik a Microsoft Networking jelszavára. Második paraméterként a hívó ablak azonosítóját kell megadni, mint szülő ablakét. A harmadik paraméter nem használt. A negyedikbe pedig egy TChangePwdInfo struktúrára mutató pointert kell átadni.

Ez a struktúra három mezőt tartalmaz. Első kötelezően kitöltendő mezőben adjuk meg annak a felhasználónak a nevét, amelyhez tartozó jelszót szeretnénk megváltoztatni. Második mezőben megadhatjuk a régi jelszót, illetve a harmadikban ennek hosszát.
type
  TChangePwdInfo=record
    lpUsername: PChar;
    lpPassword: PChar;
    cbPassword: DWORD;
  end;
A PwdChangePasswordA hívásakor megjelenik a "Jelszó megváltoztatása" ablak, ahol a felhasználó megváltoztathatja régi Windows jelszavát egy tetszőleges újra.


Könyv
Ez a cikk megtalálható ebben a könyvben: Delphi Software Offline 2001 évkönyv 102. 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 |