Работа с сетевыми ресурсами
От: Аноним  
Дата: 21.10.02 15:16
Оценка:
Вот есть такая функция:

var
Form1: TForm1;
Buf : array[0..200] of TNetResource;
CompCount:Integer;

function FindAllComputers(Workgroup: string):Integer;
var
EnumHandle : THandle;
WorkgroupRS : TNetResource;
BufSize : Cardinal;
Entries : Cardinal;
Rest : Cardinal;
begin
CompCount := 0;
Workgroup := Workgroup + #0;
FillChar(WorkgroupRS, SizeOf(WorkgroupRS) , 0);
with WorkgroupRS do begin
dwScope := RESOURCE_GLOBALNET;
dwType := RESOURCETYPE_ANY;
dwDisplayType := RESOURCEDISPLAYTYPE_DOMAIN;
dwUsage := RESOURCEUSAGE_CONTAINER;
lpRemoteName := @Workgroup[1];
end;

WNetOpenEnum(RESOURCE_GLOBALNET,RESOURCETYPE_ANY,0,@WorkgroupRS,EnumHandle );

Entries := 200;
BufSize:=SizeOf(Buf);
Rest:=WNetEnumResource(EnumHandle,Entries,@Buf[0],BufSize);

if (Rest = NO_ERROR) and (Entries > 0) then CompCount:=Entries;
WNetCloseEnum( EnumHandle );
end; { Find All Computers }

Если вызывать ее так:

procedure TForm1.Button1Click(Sender: TObject);
begin
FindAllComputers('');
end;

то она возвращает в Buf один элемент ('Сеть Microsoft Windows');

А как дальше получть список компов в этой сети ?

Пробовал так:

FindAllComputers('Сеть Microsoft Windows');

Возвращает пустой Buf.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.