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

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

Работа с локальной сетью. [D7, WinXP]


AlexanderMS ©   (2007-05-29 19:57:00) 

Скажите, пожалуйста, как обратиться к какому-нибудь файлу, папке, расположенной на одном из компьютеров локальной сети? Как это делается?


  (2008-05-08 14:11:00) [1]

Удалено модератором


  (2007-08-08 21:45:00) [2]

Удалено модератором


  (2007-06-17 21:34:00) [3]

Удалено модератором


Alarm   (2007-06-05 14:35:00) [4]

http://www.delphimaster.ru/articles/netmon/index.html


Eraser   (2007-06-04 20:10:00) [5]

> [8] AlexanderMS ©   (04.06.07 18:27)

procedure TNetScanThread.EnumResources(LpNR: PNetResource);
var
 NetHandle: DWORD;
 BufSize: DWORD;
 Size: DWORD;
 NetResources: PNetResourceArray;
 Count: DWORD;
 NetResult: Integer;
 i: Integer;
 s1: string;
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
       if FScanNetwork.FCancel then
         Exit;
       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
         if FScanNetwork.FCancel then
           Exit;
         with NetResources^[I] do
         begin
           if RESOURCEUSAGE_CONTAINER = (DwUsage and RESOURCEUSAGE_CONTAINER) then
             EnumResources(@NetResources^[I]);
           if dwDisplayType = RESOURCEDISPLAYTYPE_SERVER then
           begin
             s1 := lpRemoteName;
             s1 := Copy(s1, 3, length(s1));
             FslHosts.Add(s1);
           end;
         end;
       end;
     end;
   finally
     FreeMem(NetResources, BufSize);
   end;
 finally
   WNetCloseEnum(NetHandle);
 end;
end;


только если компов много - медленно работать будет, лучше IP сканер.


AlexanderMS   (2007-06-04 18:27:00) [6]

Покажите примерчик, пожалуйста. Я совсем в этой области не разбираюсь. Вот возникла идея сетевой программы проверки знаний по тестам, и она, по идее, должна собрать результаты со всех компьютеров локальной сети в компьютерном классе на учительский :).


G_M_S   (2007-06-04 15:18:00) [7]


> Все компы ИМХО даже сканом сети не перебрать.

Все адресалокальной сети, для буквоедов. Ессно не все из них будут присвоены компам. И WNetEnumResource тоже позволяет перебирать не все хостыв локальной сети, а только те, которые являются членами рабочей группы/домена.


Anatoly Podgoretsky   (2007-06-04 13:18:00) [8]

> G_M_S  (04.06.2007 13:10:05)  [5]

> Все компы ИМХО можно только сканом сети перебрать.

Все компы ИМХО даже сканом сети не перебрать.


G_M_S   (2007-06-04 13:10:00) [9]


> clickmaker ©   (04.06.07 10:21) [4]

А она разве не виндозные ресурсы перебирает? Все компы ИМХО можно только сканом сети перебрать.


clickmaker   (2007-06-04 10:21:00) [10]


> как "перебрать" все компьютеры локальной сети

WNetEnumResource()


G_M_S   (2007-06-04 09:59:00) [11]

Получить IP компа и маску подсети. Перебрать все IP из сети компа и проверить на "живость", например, пингом. Пинговать поможет Idny, там же есть TidNetworkCalculator, вроде как при помощи него можно получать списки IP сети на основе адреса/маски, но я его не юзал и как юзать - не знаю.


AlexanderMS   (2007-06-02 18:29:00) [12]

Спасибо. А как "перебрать" все компьютеры локальной сети (их число заранее неизвестно) и сделать то же самое?


umbra   (2007-05-29 20:17:00) [13]

\\server\share1\myfile.txt


Наверх

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