var
Computer: Array[1..500] of String[25];
ComputerCount: Integer;
procedure FindAllComputers Workgroup : String);
Var
EnumHandle: THandle;
WorkgroupRS: TNetResource;
Buf: Array[1..500] of TNetResource;
BufSize: Integer;
Entries: Integer;
Result: Integer;
begin
ComputerCount := 0;
Workgroup := Workgroup + #0;
FillChar WorkgroupRS, SizeOf WorkgroupRS) , 0);
With WorkgroupRS do begin
dwScope := 2;
dwType := 3;
dwDisplayType := 1;
dwUsage := 2;
lpRemoteName := @Workgroup[1];
end;
WNetOpenEnum RESOURCE_GLOBALNET,
RESOURCETYPE_ANY,
0,
@WorkgroupRS,
EnumHandle );
Repeat
Entries := 1;
BufSize := SizeOf Buf);
Result :=
WNetEnumResource EnumHandle,
Entries,
@Buf,
BufSize );
If Result = NO_ERROR) and Entries = 1) then begin
Inc ComputerCount );
Computer[ ComputerCount ] := StrPas Buf[1].lpRemoteName);
end;
Until Entries <> 1) or Result <> NO_ERROR);
WNetCloseEnum EnumHandle );
end; {找到所有的计算机}
|