Как найти все комьютеры в сети 2
Как найти все комьютеры в сети 2
Как найти все комьютеры в сети 2 Автор: Pegas WEB-сайт: http://forum.vingrad.ru 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);