Einzelnen Beitrag anzeigen

1234567890987654321

Registriert seit: 8. Jun 2010
73 Beiträge
 
#1

Windows Passwort überprüfen

  Alt 19. Mär 2011, 17:56
Hallo,
ich verwende diesen Code, um zu überprüfen ob Password=Windows Passwort:
Code:
function NetUserChangePassword(
domainname : Pwidechar; { IN OPTIONAL }
username : Pwidechar; { IN OPTIONAL }
oldpassword: Pwidechar; { IN }
newpassword: Pwidechar { IN }
): DWORD; stdcall;
external netapi32 name 'NetUserChangePassword';

implementation

function isPw(User, Password: String):boolean;
var
NewPassword: array [0..1023] of WideChar;
OldPassword: array [0..1023] of WideChar;
UserBuff  : array [0..1023] of WideChar;
UserName: PWideChar;
begin
StringToWideChar(Password, PWideChar(@NewPassword[0]), SizeOf(NewPassword));
StringToWideChar(Password, PWideChar(@OldPassword[0]), SizeOf(OldPassword));

StringToWideChar(User, PWideChar(@UserBuff[0]), SizeOf(UserBuff));
UserName := PWideChar(@UserBuff[0]);

if NetUserChangePassword(nil, UserName,
PWideChar(@OldPassword[0]), PWideChar(@NewPassword[0]))=0 then
result:=True
else
result:=False;
end;
Diesen Code habe ich von http://entwickler-forum.de/showthread.php?t=36129
Es kommt aber immer dasselbe: Result:=False;
Auch wenn das Pw und Username richig sind.

Was ist an diesem Code falsch?
ACHTUNG: ICH VERWENDE LAZARUS
  Mit Zitat antworten Zitat