(Co-Admin)
Registriert seit: 29. Mai 2002
Ort: Hamburg
11.116 Beiträge
Delphi 11 Alexandria
|
Re: Alle PC-Namen eines Netzwerkes erhalten
17. Sep 2003, 18:33
Moin Matze,
probier mal, ob das hier bei euch funktioniert.
Delphi-Quellcode:
type
NET_API_STATUS = DWORD;
PWKSTA_USER_INFO_0 = ^WKSTA_USER_INFO_0;
WKSTA_USER_INFO_0 = packed record
wkui0_username : PWChar;
end;
function NetWkstaUserEnum(
const servername : PWChar;
const level : DWord;
const bufptr : Pointer;
const prefmaxlen : DWord;
const entriesread : PDWord;
const totalentries : PDWord;
const resumehandle : PDWord
) : NET_API_STATUS; stdcall; external 'netapi32.dll';
function NetApiBufferFree(
const Buffer : Pointer
) : NET_API_STATUS; stdcall; external 'netapi32.dll';
const
NERR_Success = 0;
MAX_PREFERRED_LENGTH = DWORD(-1);
implementation
{$R *.DFM}
procedure TForm1.Button1Click(Sender: TObject);
var
pwuiWork : PWKSTA_USER_INFO_0;
pwuiRead : PWKSTA_USER_INFO_0;
dwEntriesRead : DWORD;
dwTotalEntries : DWORD;
i : integer;
dwResult : DWORD;
pwsServer : PWideChar;
begin
pwsServer := '';
dwResult := NetWkstaUserEnum(pwsServer,0,@pwuiRead,MAX_PREFERRED_LENGTH,@dwEntriesRead,@dwTotalEntries,nil);
if dwResult <> NERR_SUCCESS then begin
ShowMessage(SysErrorMessage(dwResult)+#13#10+IntToStr(dwResult));
end;
try
pwuiWork := pwuiRead;
for i := 1 to dwEntriesRead do begin
ShowMessage(pwuiWork.wkui0_username);
inc(pwuiWork);
end;
finally
NetApiBufferFree(pwuiRead);
end;
end;
Tschüss Chris
Die drei Feinde des Programmierers: Sonne, Frischluft und dieses unerträgliche Gebrüll der Vögel.
Der Klügere gibt solange nach bis er der Dumme ist
|