Autor Beitrag
LuMa86
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 76



BeitragVerfasst: Di 13.05.14 11:52 
Hallo :)
In meiner Anwendung muss man seine Windows Anmeldedaten angeben. Dazu gehören nebem dem Benutzername und dem Passwort auch der Domainname. Um es den Anwendern zu erleichtern, nehme ich einige Angaben schon vorweg, wie z.B. den Benutzernamen. Das will ich nun auch mit dem Domiannamen machen, allerdings steh ich hier noch auf dem Schlauch. Habe einen Ansatz gesehen, der ist jedoch von 2002 und benutzt die NetApi32, welche nicht mehr vorhanden ist.

Gibt es da eine Lösung für?

Gruß,
LuMa


Moderiert von user profile iconNarses: Topic aus Sonstiges (Delphi) verschoben am Di 13.05.2014 um 12:15
Narses
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Administrator
Beiträge: 10181
Erhaltene Danke: 1254

W10ent
TP3 .. D7pro .. D10.2CE
BeitragVerfasst: Di 13.05.14 12:24 
Moin!

Probier mal das hier (D7pro -> ANSI-API-Strings):
ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
function ExtendedUserName: String;
  var
    GetUserNameEx: function(NameFormat: Cardinal; lpNameBuffer: PChar; var dwSize: Cardinal): Boolean; stdcall;
    hDLL: Integer;
    dwSize: Cardinal;
begin
  Result := '';
  try
    hDLL := LoadLibrary('secur32.dll');
    if (hDLL = 0then begin
      Result := CurrentUserNameShort;
      Exit;
    end
    else begin
      GetUserNameEx := GetProcAddress(hDll,'GetUserNameExA');
      if (@GetUserNameEx = NILthen begin
        CloseHandle(hDLL);
        Result := CurrentUserNameShort;
      end
      else begin
        dwSize := MAX_PATH;
        SetLength(Result,dwSize);
        If (GetUserNameEx(NameSamCompatible,PChar(Result),dwSize) and (dwSIze > 0) ) then
          Result := PChar(Result)
        else
          Result := CurrentUserNameShort;
      end;
      FreeLibrary(hDLL);
    end;
  except
  end;
end;

cu
Narses

_________________
There are 10 types of people - those who understand binary and those who don´t.
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Di 13.05.14 13:59 
Da dort explizit die GetUserNameExA geladen wird, ist es (unabhängig von der Delphiversion!) kein sauberer Code statt mit PAnsiChar usw. mit dem allgemeinen PChar zu arbeiten.

Genau das führte dann bei der Unicodeumstellung mit Delphi 2009 zu vielen unnötigen Problemen. Denn eigentlich war es auch vorher schon falsch, es hat nur oft niemanden gestört bzw. wurde nicht beachtet.

Für diesen Beitrag haben gedankt: Narses
WasWeißDennIch
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 653
Erhaltene Danke: 160



BeitragVerfasst: Di 13.05.14 14:59 
LuMa86 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 76



BeitragVerfasst: Mi 14.05.14 22:58 
Danke, hab die Funktion aus dem Delphi-Treff genommen, da die ja noch viel umfangreicher ist... Kann man immer mal gebrauchen.
Dankö :)