AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

GetUserNameEx

Ein Thema von Luckie · begonnen am 29. Mär 2006 · letzter Beitrag vom 7. Mär 2010
 
moonwalk55

Registriert seit: 29. Sep 2007
12 Beiträge
 
Delphi XE2 Professional
 
#34

Re: GetUserNameEx

  Alt 3. Mär 2010, 16:40
Hallo Zusammen,

damit ich nicht immer eine extra Unit verwenden muss, habe ich den Funktionsaufruf von GetUserNameEx in der "windows.pas" ergänzt.

Ich verwende Delphi 2010. In der "windows.pas" war schon die Deklaration von GetComputerNameEx enthalten. Also habe ich die Aufrufe von GetUserNameEx entsprechend angelegt. Komischerweise ist die Erklärung der Funktion in der Online-Hilfe von Delphi enthalten.

Folgende Eintragungen habe ich in der "windows.pas" unterhalb von GetUserName vorgenommen:

INTERFACE - Teil

Delphi-Quellcode:
type
  _EXTENDED_NAME_FORMAT = (NameUnknown,
    NameFullyQualifiedDN, NameSamCompatible, NameDisplay,
    NameEmpty1, NameEmpty2,
    NameUniqueId, NameCanonical, NameUserPrincipal,
    NameCanonicalEx, NameServicePrincipal,
    NameEmpty3, NameDnsDomain);
 {$EXTERNALSYM _EXTENDED_NAME_FORMAT}
 TExtendedNameFormat = _EXTENDED_NAME_FORMAT;
 EXTENDED_NAME_FORMAT = _EXTENDED_NAME_FORMAT;
 {$EXTERNALSYM EXTENDED_NAME_FORMAT}

function GetUserNameEx(NameFormat: TExtendedNameFormat; lpBuffer: PWideChar; var nSize: DWORD): BOOL; stdcall;
{$EXTERNALSYM GetUserNameEx}
function GetUserNameExA(NameFormat: TExtendedNameFormat; lpBuffer: PAnsiChar; var nSize: DWORD): BOOL; stdcall;
{$EXTERNALSYM GetUserNameExA}
function GetUserNameExW(NameFormat: TExtendedNameFormat; lpBuffer: PWideChar; var nSize: DWORD): BOOL; stdcall;
{$EXTERNALSYM GetUserNameExW}
IMPLEMENTATION - Teil

Delphi-Quellcode:
function GetUserNameEx; external 'Secur32.dllname 'GetUserNameExW';
function GetUserNameExA; external 'Secur32.dllname 'GetUserNameExA';
function GetUserNameExW; external 'Secur32.dllname 'GetUserNameExW';

Der Aufruf innerhalb des Programms erfolgt dann einfach über folgende Funktion:

Delphi-Quellcode:
function GetAUserNameEx(ANameFormat: TExtendedNameFormat): String;
var ABuf: array[0..1023] of Char;
    Size: DWord;

begin
 Result:= '';
 Size:= 1024;
 if GetUserNameEx(ANameFormat, @ABuf, Size) then
  Result:= ABuf;
end;
Das hat die ganze Sache schon recht vereinfacht und funktioniert prima.
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 18:24 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