
08.08.2014, 19:31
|
 |
Начинающий
|
|
Регистрация: 09.11.2011
Адрес: Москва
Сообщения: 144
Версия Delphi: XE2
Репутация: 11216
|
|
Код:
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, Entries, 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;
__________________
Помогаю платно.
Помогаю иногда бесплатно.
|