Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Обзор сетевого окружения... [D7, WinXP]


istok ©   (2007-09-13 13:04:00) 

есть вот такая штука для обзора сетевого окружения:


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:00) [1]

может в BufSize  фишка...  ?
(мне сложно это проверить на деле и хочется подтверждения теории)


Наверх

Титульная страница Поиск, карта сайта Написать письмо