Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Win32/Win64 API (native code) (https://www.delphipraxis.net/17-win32-win64-api-native-code/)
-   -   Delphi NetUserGetInfo (https://www.delphipraxis.net/2144-netusergetinfo.html)

Luckie 8. Jan 2003 20:20


NetUserGetInfo
 
Ich experementiere gerade so etwas mit der obigen Funktion rum. Ich benutze dazu die Headerübersetzungen der Jedis. Hier mein Code der mir Probleme bereitet:
Delphi-Quellcode:
function GetUser(): string;
const
  UNLEN = 256; // Maximum user name length (LmCons.h)
var
  Size: DWORD;
begin
  Size := UNLEN + 1;
  SetLength(Result, Size);
  if GetUserName(PChar(Result), Size) then
    SetLength(Result, Size - 1)
  else
    Result := '';
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  sUser: String;
  ui11: TUSERINFO11;
begin
  sUser := GetUser();
  NetUserGetInfo(nil, PWideChar(sUser), 11, ui11); {*}
  Label1.Caption := ui11.usri11_name;
end;
In der mit * bezeichneten Zeile meint Delphi zu mir:
Zitat:

[Fehler] Unit1.pas(49): Die Typen der tatsächlichen und formalen Var-Parameter müssen übereinstimmen
Und den cast mit PWideChar nimmt er gerade mal so aus Höflichkiet an. Wie bekomme ich jetzt einen String in einen WideChar?

Christian Seehase 8. Jan 2003 20:30

Moin Luckie,

Zitat:

Wie bekomme ich jetzt einen String in einen WideChar?
Dazu stellt Delphi die Funktion StringToWideChar zur Verfügung.

;-)

sakura 8. Jan 2003 20:34

Was wären wir ohne ICQ :D
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  sUser: String;
  ui11: Pointer;
begin
  sUser := GetUser();
  NetUserGetInfo(nil, PWideChar(WideString(sUser)), 11, ui11); {*}
  Label1.Caption := PUserInfo11(ui11)^.usri11_name;

  // ... speicher funktion freigeben.
end;

Luckie 8. Jan 2003 20:47

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  sUser: String;
  ui11: Pointer;
begin
  sUser := GetUser();
  NetUserGetInfo(nil, PWideChar(WideString(sUser)), 11, ui11);
  Label1.Caption := PUserInfo11(ui11)^.usri11_name;
  NetApiBufferFree(ui11);
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:49 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz