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 Domäne auslesen und NetApiBufferFree(pwuiWork) (https://www.delphipraxis.net/61548-domaene-auslesen-und-netapibufferfree-pwuiwork.html)

Ati 23. Jan 2006 07:24


Domäne auslesen und NetApiBufferFree(pwuiWork)
 
Moin zusammen,

ich habe aus einem Beitrag den Code zum Auslesen der Domäne gefunden. Jetzt muß ich zugeben das ich bezogen auf die API unbefleckt von jeglicher Sachkenntnis bin (ich gelobe da aber Besserung). Jedoch gibt es zum Schluß folgende Code-Zeile:
Delphi-Quellcode:
NetApiBufferFree(pwuiWork);
diese verursacht aber bei mir eine Fehlermeldung (liegt wahrscheinlich an der nicht eingebundenden Unit welche nicht existiert). Ach so die Fehlermeldung lautet "Undefinierter Bezeichner". Alles funktioniert zwar einwandfrei wenn ich diese Zeile ausklammere aber das ist ja wohl nicht im Sinne des Erfinders. Wie muß ich das entsprechend ändern? Hier mal der ganze entsprechende Code:
Delphi-Quellcode:
type

  PWKSTA_USER_INFO_1 = ^WKSTA_USER_INFO_1;
  WKSTA_USER_INFO_1 = packed record
    wkui1_username    : PWChar;
    wkui1_logon_domain : PWChar;
    wkui1_oth_domains : PWChar;
    wkui1_logon_server : PWChar;
  end;

function NetWkstaUserGetInfo(
    const reserved : PWChar;
    const level   : DWord;
    const bufptr  : Pointer
    ) : NET_API_STATUS; stdcall; external 'netapi32.dll';

procedure TForm1.Button1Click(Sender: TObject);
var
  pwuiWork : PWKSTA_USER_INFO_1;

begin
  if NetWkstaUserGetInfo(nil,1,@pwuiWork) = NErr_Success then
  begin
    try
      ShowMessage( 
        WideCharToString(pwuiWork.wkui1_logon_domain)
        );
    finally
      NetApiBufferFree(pwuiWork);
    end;
  end;
end;

Luckie 23. Jan 2006 07:31

Re: Domäne auslesen und NetApiBufferFree(pwuiWork)
 
[delphi]
function NetApiBufferFree(Buffer: Pointer): NET_API_STATUS; stdcall; external 'netapi32.dll';

Ati 23. Jan 2006 07:42

Re: Domäne auslesen und NetApiBufferFree(pwuiWork)
 
Vielen vielen Dank. Jetzt funktioniert es einwandfrei. Habe jetzt noch nicht die Suche bemüht frage aber trotzdem mal, wie man sich in diese Thematik am besten einfindet. Damit sind ja anscheinend ein paar "tolle" Sachen möglich ;-).

Ati 23. Jan 2006 08:08

Re: Domäne auslesen und NetApiBufferFree(pwuiWork)
 
Jetzt hatte ich schon den Schampus aufgemacht weil es funktionierte und wollte das ein wneig ändern, so das diese Information wie alle anderen in einer Listbox erscheint und und sagt er zu
Delphi-Quellcode:
^WKSTA_USER_INFO_1;
undefinierter Bezeichner. Warum jetzt und vorhin nicht??
Das heißt der Code der vorher gepostet wurde geht auch nicht mehr!!

Ati 23. Jan 2006 08:39

Re: Domäne auslesen und NetApiBufferFree(pwuiWork)
 
So habe jetzt nochmal ein neues Projekt erstellt um Schritt-für-Schritt vorgehen zu können. Jetzt wird aber nicht mehr
Delphi-Quellcode:
^WKSTA_USER_INFO_1;
angemeckert sondern zur allgemeinen Überraschung
Delphi-Quellcode:
NET_API_STATUS

Ati 23. Jan 2006 09:06

Re: Domäne auslesen und NetApiBufferFree(pwuiWork)
 
Hat sich zum Teil erledigt. Wenn man so blöd ist und
Delphi-Quellcode:
type

  PWKSTA_USER_INFO_1 = ^WKSTA_USER_INFO_1;
  WKSTA_USER_INFO_1 = packed record
    wkui1_username    : PWChar;
    wkui1_logon_domain : PWChar;
    wkui1_oth_domains : PWChar;
    wkui1_logon_server : PWChar;
  end;
zweimal verwendet sollte ein nicht wundern. Net_Api_Status-Meldung mit
Delphi-Quellcode:
type
 
  NET_API_STATUS = Integer;
auch erledigt. Was ich noch nicht hinbekomme ist das ganze in einer Funktion umzuwandeln, damit die Domäne in einer Listbox auftaucht. Aber da werde ich mich jetzt erstmal selber durchkämpfen.

Ati

Christian Seehase 23. Jan 2006 10:43

Re: Domäne auslesen und NetApiBufferFree(pwuiWork)
 
Moin Ati,

NET_API_STATUS ist als DWORD definiert ;-)

Ati 23. Jan 2006 10:46

Re: Domäne auslesen und NetApiBufferFree(pwuiWork)
 
Ups habe ich geändert.


Alle Zeitangaben in WEZ +1. Es ist jetzt 15:09 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