Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Разное > Исходники и статьи
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 04.10.2011, 18:20
Lucky192 Lucky192 вне форума
Прохожий
 
Регистрация: 04.10.2011
Сообщения: 28
Репутация: 1351
Лампочка Исходник - поиск файлов в локальной сети

Функция ищет все файлы на компьютерах локальной сети.
Код:
procedure NetworkScan(AFiles : TStrings);

  procedure ScanDir(ADir:string);
  var sr:_WIN32_FIND_DATA; fh:THandle; sn:string;
  begin
    fh:=FindFirstFile(PChar(ADir+'*'),sr);
    if fh<>INVALID_HANDLE_VALUE then begin
      repeat
        sn := sr.cFileName;
        if (sn<>'.')and(sn<>'..') then begin
          if (sr.dwFileAttributes and faDirectory)<>0
            then ScanDir(ADir+sn+'\')
            else AFiles.Add(ADir+sn);
          Application.ProcessMessages;  
        end;
      until not FindNextFile(fh,sr);
    end;
    Windows.FindClose(fh);
  end;

  procedure EnumNet(NetRes:PNetResource);
  var i,res,Handle,count,bufsize:cardinal;
      pr:PNetResource;
      buf:array of byte;
  begin
    bufsize:=16384;
    SetLength(buf,bufsize);
    count:=$FFFFFFFF;
    res := WNetOpenEnum(RESOURCE_GLOBALNET,RESOURCETYPE_DISK,0,NetRes,Handle);
    if res=NO_ERROR then begin
      repeat
        res:=WNetEnumResource(Handle,count,@buf[0],bufsize);
        if res=NO_ERROR then begin
          pr:=@buf[0];
          for i:=0 to count-1 do begin
            if (pr.dwUsage and RESOURCEUSAGE_CONTAINER)<>0
              then EnumNet(pr);
            if (pr.dwUsage and RESOURCEUSAGE_CONNECTABLE)<>0
              then ScanDir(pr.lpRemoteName+'\');
            inc(pr);
          end;
        end;
      until (res<>NO_ERROR);
      WNetCloseEnum(Handle);
    end;
  end;

begin
  EnumNet(nil);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  NetworkScan(Memo1.Lines);
end;
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 02:53.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter