Главная » Delphi » Интернет и сети » EnumResources

EnumResources

09:01
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1124778504&n=5

dmitry501 © (26.08.05 6:58) [34] [Новое сообщение][Ответить]
officeman (25.08.05 21:16) [32]
ААААААА!!!!!!!!!!!!!!!!
Вот смотри:
Открой в Delphi новый проект, кинь на него ListView, установи свойство ViewStyle=vsList, кинь кнопку и напиши код
type
PNetResourceArray = ^TNetResourceArray;
TNetResourceArray = array[0..MaxInt div SizeOf(TNetResource) - 1] of
TNetResource;

procedure EnumResources(LpNR: PNetResource);
// by Nomadic, Михаил Немцов
var
 NetHandle: DWORD;
 BufSize: DWORD;
 Size: DWORD;
 NetResources: PNetResourceArray;
 Count: DWORD;
 NetResult: Integer;
 I: Integer;
 NewItem: TListItem;
begin
 if WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, 0, LpNR, NetHandle) <>
   NO_ERROR then
   Exit;
 try
   BufSize := 50 * SizeOf(TNetResource);
   GetMem(NetResources, BufSize);
   try
     while True do
     begin
       Count := 1;
       Size := BufSize;
       NetResult := WNetEnumResource(NetHandle, Count, NetResources, Size);
       if NetResult = ERROR_MORE_DATA then
       begin
         BufSize := Size;
         ReallocMem(NetResources, BufSize);
         Continue;
       end;
       if NetResult <> NO_ERROR then
         Exit;
       for I := 0 to Count - 1 do
       begin
         with NetResources^[I] do
         begin
           if RESOURCEUSAGE_CONTAINER = (DwUsage and RESOURCEUSAGE_CONTAINER)
             then
             EnumResources(@NetResources^[I]);
           if dwDisplayType = RESOURCEDISPLAYTYPE_SHARE then
             // ^^^^^^^^^^^^^^^^^^^^^^^^^ - ресурс
             // RESOURCEDISPLAYTYPE_SERVER - компьютер
             // RESOURCEDISPLAYTYPE_DOMAIN - рабочая группа
             // RESOURCEDISPLAYTYPE_GENERIC - сеть
           begin
             NewItem := Form1.ListView1.Items.Add;
             NewItem.Caption := LpRemoteName;
           end;
         end;
       end;
     end;
   finally
     FreeMem(NetResources, BufSize);
   end;
 finally
   WNetCloseEnum(NetHandle);
 end;
end;
 
procedure TForm1.Button1Click(Sender: TObject);
var
 OldCursor: TCursor;
begin
 OldCursor := Screen.Cursor;
 Screen.Cursor := crHourGlass;
 with ListView1.Items do
 begin
   BeginUpdate;
   Clear;
   EnumResources(nil);
   EndUpdate;
 end;
 Screen.Cursor := OldCursor;
end;
 
end.


Запусти, в списке увидишь расшаренные ресурсы в своей сети в виде \\компьютер\шара
Вот и ищи свои файлы в них.
Уф.....

http://www.delphimaster.ru/cgi-bin/forum.pl?id=1124778504&n=5