![]() |
Re: Benutzer Kennwort erforderlich - UF_PASSWD_NOTREQD
Moin,
ich habe deinen Code etwas "umgeschrieben":
Delphi-Quellcode:
Grüße vom marabu
const
UF_PASSWD_NOTREQD = 32; UNLEN = 20; // 256 for groupnames NERR_SUCCESS = 0; TYPE USER_INFO_1 = record usri1_name: LPWSTR; usri1_password: LPWSTR; usri1_password_age: DWORD; usri1_priv: DWORD; usri1_home_dir: LPWSTR; usri1_comment: LPWSTR; usri1_flags: DWORD; usri1_script_path: LPWSTR; end; TUserInfo1 = USER_INFO_1; PUserInfo1 = ^TUserInfo1; function PasswordNotRequired: Boolean; var ui: PUserInfo1; p: Pointer absolute ui; un: WideString; n: Cardinal; begin p := nil; n := Succ(UNLEN); SetLength(un, UNLEN); Result := GetUserNameW(@un[1], n) and (NetUserGetInfo(nil, @un[1], 1, p) = NERR_SUCCESS) and ((ui.usri1_flags and UF_PASSWD_NOTREQD) = UF_PASSWD_NOTREQD); if Assigned(p) then NetApiBufferFree(p); end; |
Re: Benutzer Kennwort erforderlich - UF_PASSWD_NOTREQD
Leider funktioniert der Code auch nicht :-(
Ich kann es mir zwar nicht vorstellen, aber kann es vlt. daran liegen, dass ich WinXP Home habe? |
Re: Benutzer Kennwort erforderlich - UF_PASSWD_NOTREQD
Moin, moin,
der Code von marabu funktioniert bei mir unter Windows VISTA x64 hervorragend, aber unter Window XP Prof. XP3 funktioniert er auch nicht. :gruebel: Edit: Ich habe jetzt noch ein bisschen rumprobiert und die USER_INFO_1008 gefunden. Die beinhaltet lediglich nur den Wert, den Du benötigst. Dazu habe ich jetzt den Code oben von marabu angepasst und es funktioniert unter Windows XP Prof. SP2.
Delphi-Quellcode:
Probiere es einfach mal aus.
const
UF_PASSWD_NOTREQD = 32; UNLEN = 20; // 256 for groupnames NERR_SUCCESS = 0; TYPE USER_INFO_1008 = record usri1008_flags: DWORD; end; TUserInfo1008 = USER_INFO_1008; PUserInfo1008 = ^TUserInfo1008; function NetUserGetInfo(servername: LPCWSTR; username: LPCWSTR; level: DWORD; var bufptr: Pointer): DWORD; stdcall; external 'netapi32.dll' name 'NetUserGetInfo'; function NetApiBufferFree(Buffer: Pointer): DWORD; stdcall; external 'netapi32.dll' name 'NetApiBufferFree'; function PasswordNotRequired: Boolean; var ui: PUserInfo1008; p: Pointer absolute ui; un: WideString; n: Cardinal; begin p := nil; n := Succ(UNLEN); SetLength(un, UNLEN); Result := GetUserNameW(@un[1], n) and (NetUserGetInfo(nil, @un[1], 1, p) = NERR_SUCCESS) and ((ui.usri1008_flags and UF_PASSWD_NOTREQD) = UF_PASSWD_NOTREQD); if Assigned(p) then NetApiBufferFree(p); end; |
Re: Benutzer Kennwort erforderlich - UF_PASSWD_NOTREQD
Hurra! Es funktioniert! Ich danke euch allen und speziell natürlich RWarnecke :-)
Danke! :thumb: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:49 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz