Einzelnen Beitrag anzeigen

N30N

Registriert seit: 7. Aug 2007
78 Beiträge
 
#4

Re: Momentanen Benutzernamen herausfinden

  Alt 7. Nov 2007, 14:53
Ich hab mir aus der Library folgenden Code rausgesucht:


Delphi-Quellcode:
function GetLoggedOnUserNameEx(fFormat: DWORD; var Username: String): DWORD;
var
  Size: DWORD;
  Buffer: array [0..1024] of Char;
begin
  Result := 0;
  Size := sizeof(Buffer);
  if GetUserNameEx(fFormat, Buffer, Size) then
    SetString(Username, Buffer, Size-1)
  else
    Result := GetLastError;
end;

procedure TForm1.Button1Click(Sender: TObject);
const
   NameFormats : Array[0..9] of DWORD = (
      NameUnknown,
      NameFullyQualifiedDN,
      NameSamCompatible,
      NameDisplay,
      NameUniqueId,
      NameCanonical,
      NameUserPrincipal,
      NameCanonicalEx,
      NameServicePrincipal,
      DNSDomainName);

var
  Username: String;
  err: DWORD;
  i : shortint;
  sMessage : string;
begin
   for i := 0 to high(NameFormats) do
   begin
      err := GetLoggedOnUserNameEx(NameFormats[i], Username);
      if err = 0 then
         sMessage := sMessage+format('%d: %s', [NameFormats[i], Username])+#13
      else
         sMessage := sMessage+format('%d: %s', [NameFormats[i], SysErrorMessage(err)])+#13;
   end;
   ShowMessage(sMessage)
end;

Ich hab also ein neues Formular erstellt, einen Button1 hinzugefügt und einfach mal starten lassen.Wenn ich allerdings jetzt auf den Button1 klicke, passiert nichts. Normalerweise müsste doch jetzt eine Messagebox mit dem Benutzernamen erscheinen oder nicht?

An Komponenten kann mir ja eigentlich nix fehlen, hab ja keine Fehlermeldungen bekommen.
Ich bin ein Delphi-Anfänger.
  Mit Zitat antworten Zitat