Текущий архив: 2008.06.29;
Скачать: CL | DM;
ВнизОбзор сетевого окружения... Найти похожие ветки
← →
istok (2007-09-13 13:04) [0]есть вот такая штука для обзора сетевого окружения:
type
PNetRes = ^TNetRes;
TNetRes = record
dwScope : Integer;
dwType : Integer;
dwDisplayType : Integer;
dwUsage : Integer;
LocalName : string;
RemoteName : string;
Comment : string;
Provider : string;
end;
PnetResourceArr = ^TNetResource;
function GetContainerList(ListRoot:PNetResource):TList;
var
TempRec : PNetRes;
Buf : Pointer;
Count,
BufSize,
Res : DWORD;
lphEnum : THandle;
p : PNetResourceArr;
i : SmallInt;
NetworkList : TList;
begin
NetworkList := TList.Create;
BufSize := 8192;
GetMem(Buf, BufSize);
Result:=nil;
Count := $FFFFFFFF;
Res := WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_DISK,
0, ListRoot, lphEnum);
try
//if Res <> 0 then raise Exception(Res);
Res := WNetEnumResource(lphEnum, Count, Buf, BufSize);
if Res = ERROR_NO_MORE_ITEMS then Exit;//????? ?? ????????
//if Res <> 0 then raise Exception(Res);
P := PNetResourceArr(Buf);
for i := 0 to Count - 1 do
begin
New(TempRec);
TempRec^.dwScope := P^.dwScope;
TempRec^.dwType := P^.dwType ;
TempRec^.dwDisplayType := P^.dwDisplayType ;
TempRec^.dwUsage := P^.dwUsage ;
TempRec^.LocalName := StrPas(P^.lpLocalName);
TempRec^.RemoteName := StrPas(P^.lpRemoteName);
TempRec^.Comment := StrPas(P^.lpComment);
TempRec^.Provider := StrPas(P^.lpProvider);
NetworkList.Add(TempRec);
Inc(P);
end;
Result:=NetWorkList;
finally
WNetCloseEnum(lphEnum);
FreeMem(Buf);
end;
end;
косяк в том, что при 100+ компах он показывает не все компы домена (точно не знаю сколько именно, но где-то на сотне обрубает).
может тут есть явный ляп или кто-то знает от чего такое бывает?
← →
istok (2007-09-13 13:06) [1]может в BufSize фишка... ?
(мне сложно это проверить на деле и хочется подтверждения теории)
Страницы: 1 вся ветка
Текущий архив: 2008.06.29;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.046 c