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