uses
WinCred;
resourcestring
MessageText = '
Geben Sie Namen und Kennwort eines Kontos mit ' +
'
Berechtigungen für %s ein.'#13#10#13#10 +
'
Beispiel: benutzername oder domäne\benutzername';
CaptionText = '
Netzwerkkennwort eingeben';
procedure TForm1.Button1Click(Sender: TObject);
const
TargetName = '
Blindschacht';
var
UserName:
array [0..CRED_MAX_USERNAME_LENGTH]
of Char;
Password:
array [0..CREDUI_MAX_PASSWORD_LENGTH]
of Char;
Info: TCredUIInfo;
Save: BOOL;
Flag: DWORD;
begin
ZeroMemory(@UserName, SizeOf(UserName));
ZeroMemory(@Password, SizeOf(Password));
ZeroMemory(@Info, SizeOf(TCredUIInfo));
with Info
do
begin
cbSize := SizeOf(TCredUIInfo);
hwndParent :=
Handle;
pszMessageText := PChar(Format(MessageText, [TargetName]));
pszCaptionText := PChar(CaptionText);
end;
Save := False;
Flag := CREDUI_FLAGS_DO_NOT_PERSIST
or CREDUI_FLAGS_EXCLUDE_CERTIFICATES
or
CREDUI_FLAGS_GENERIC_CREDENTIALS
or CREDUI_FLAGS_ALWAYS_SHOW_UI;
ShowMessage(SysErrorMessage(
CredUIPromptForCredentials(@Info, '
Foo',
nil, 0,
UserName, CRED_MAX_USERNAME_LENGTH+1,
Password, CREDUI_MAX_PASSWORD_LENGTH+1,
Save, Flag)));
ZeroMemory(@UserName, SizeOf(UserName));
ZeroMemory(@Password, SizeOf(Password));
end;