Работа с сетевыми ресурсами
|
От: |
Аноним
|
|
| Дата: | 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.
Пока на собственное сообщение не было ответов, его можно удалить.