Entwickler-Ecke

Windows API - Domain Name auslesen


LuMa86 - Di 13.05.14 11:52
Titel: Domain Name auslesen
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 - Di 13.05.14 12:24

Moin!

Probier mal das hier (D7pro -> ANSI-API-Strings):

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


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


WasWeißDennIch - Di 13.05.14 14:59

http://forum.delphi-treff.de/index.php?page=Thread&threadID=31582


LuMa86 - 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ö :)