![]() |
Re: Domain Name auslesen
Warum funktioniert der Code nicht?Ist doch genua das aus eurem Beispiel oben?
Delphi-Quellcode:
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, NetApi32; 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; TForm1 = class(TForm) procedure FormCreate(Sender: TObject); private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); var pwuiWork : PWKSTA_USER_INFO_1; begin if NetWkstaUserGetInfo(nil,1,@pwuiWork) = NErr_Success then begin //<- hier kommt der Fehler: Die Typen der tatsächlichen und formalen Var-Parameter müssen übereinstimmen try ShowMessage( WideCharToString(pwuiWork.wkui1_logon_domain)+'\'+ WideCharToString(pwuiWork.wkui1_username) ); finally NetApiBufferFree(pwuiWork); end; end; end; |
Re: Domain Name auslesen
Moin Tpercon,
das wird vermutlich daran liegen, dass die Übersetzung der Funktion die Du verwendest borlandtypisch deklariert wurde (mit var Parametern an der Stelle, wo die Funktion etwas zurückliefern soll/kann). Meine Deklaration, c-typisch (mit Angabe der Adresse an der Stelle wo die Funktion etwas zurückliefern soll/kann), sieht so aus:
Delphi-Quellcode:
// für dynamischen Import TcsNetWkstaUserGetInfo = function( const reserved : PWChar; const level : DWord; const bufptr : Pointer ) : NET_API_STATUS; stdcall; // für statischen Import function NetWkstaUserGetInfo( const reserved : PWChar; const level : DWord; const bufptr : Pointer ) : NET_API_STATUS; stdcall; external 'netapi32.dll'; |
Re: Domain Name auslesen
:hello: Jetzt geht das schonmal! Danke dir.
|
Re: Domain Name auslesen
Hallo zusammen!
Habe das auch mal probiert, aber bei mir haperts bereits an der netapi32-uses klausel: "File not Found netapi32.dcu". Woher bekomme ich die netapi32.dcu?? Hab im Inet mal danach gesucht, scheint aber nur ne .dll zu geben.. mfg Benni aka MASTER of LAN |
Re: Domain Name auslesen
Moin Benni,
erst einmal herzlich willkommen hier in der Delphi-PRAXiS. Was die NETAPI32.DCU angeht kann ich jetzt nur mal eine Vermutung anstellen. Die die Tpercon mit eingebunden hatte stammt vermutlich von den JEDIs. Für mein Beispiel hatte ich mir allerdings die ganzen Deklarationen selber aus dem Microsoft Headern übersetzt (für NetWkstaUserGetInfo und die Strukturen weiter oben im Thread zu finden). Wenn Du die Unit aus der uses Eintragung rausnimmst, und dafür anderen Übersetzungen nimmst sollte es gehen. [EDIT] Was ich noch vergessen hatte: Die hier beschriebenen Deklarationen funktionieren nicht unter 9x/ME. [/EDIT] |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:19 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