Как найти все комьютеры в сети?
function TNetForm.FillNetLevel(xxx: PNetResource; List:TListItems): Word;
Type
PNRArr = ^TNRArr;
TNRArr =
array[0..59]
of TNetResource;
Var
x: PNRArr;
tnr: TNetResource;
I : integer;
EntrReq,
SizeReq,
twx: THandle;
WSName:
string;
LI:TListItem;
begin
Result :=WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY,RESOURCEUSAGE_CONTAINER, xxx, twx);
If Result = ERROR_NO_NETWORK
Then Exit;
if Result = NO_ERROR
then
begin
New(x);
EntrReq := 1;
SizeReq := SizeOf(TNetResource)*59;
while (twx <> 0)
and
(WNetEnumResource(twx, EntrReq, x, SizeReq) <> ERROR_NO_MORE_ITEMS)
do
begin
For i := 0
To EntrReq - 1
do
begin
Move(x^[i], tnr, SizeOf(tnr));
case tnr.dwDisplayType
of
RESOURCEDISPLAYTYPE_SERVER:
begin
if tnr.lpRemoteName <> ''
then
WSName:= tnr.lpRemoteName
else WSName:= tnr.lpComment;
LI:=list.Add;
LI.Caption:=copy(WSName,3,length(WSName)-2);
//list.Add(WSName);
end;
else FillNetLevel(@tnr, list);
end;
end;
end;
Dispose(x);
WNetCloseEnum(twx);
end;
end;
Пример вызова:
FillNetLevel(
nil,ListView1.Items);
Автор Pegas
Взято с Vingrad.ru
Содержание Назад Вперед