Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.05.25;
Скачать: CL | DM;

Вниз

Имя компьютера   Найти похожие ветки 

 
Vasja   (2008-04-26 13:11) [0]

можно ли в Delphi сформироыать список имен компьютеров, подключенных к локальной сети?


 
ZENsan ©   (2008-04-26 13:14) [1]


type
 PNetResourceArray = ^TNetResourceArray;
 TNetResourceArray = array[0..100] of TNetResource;

function CreateNetResourceList(ResourceType: DWord;
                             NetResource: PNetResource;
                             out Entries: DWord;
                             out List: PNetResourceArray): Boolean;
var
 EnumHandle: THandle;
 BufSize: DWord;
 Res: DWord;
begin
 Result := False;
 List := Nil;
 Entries := 0;
 if WNetOpenEnum(RESOURCE_GLOBALNET,
                 ResourceType,
                 0,
                 NetResource,
                 EnumHandle) = NO_ERROR then begin
   try
     BufSize := $4000;  // 16 kByte
     GetMem(List, BufSize);
     try
       repeat
         Entries := DWord(-1);
         FillChar(List^, BufSize, 0);
         Res := WNetEnumResource(EnumHandle, Entries, List, BufSize);
         if Res = ERROR_MORE_DATA then
         begin
           ReAllocMem(List, BufSize);
         end;
       until Res <> ERROR_MORE_DATA;
       Result := Res = NO_ERROR;
       if not Result then
       begin
         FreeMem(List);
         List := Nil;
         Entries := 0;
       end;
     except
       FreeMem(List);
       raise;
     end;
   finally
     WNetCloseEnum(EnumHandle);
   end;
 end;
end;

procedure ScanNetworkResources(ResourceType, DisplayType: DWord; List: TStrings);

procedure ScanLevel(NetResource: PNetResource);
var
 Entries: DWord;
 NetResourceList: PNetResourceArray;
 i: Integer;
begin
 if CreateNetResourceList(ResourceType, NetResource, Entries, NetResourceList) then try
   for i := 0 to Integer(Entries) - 1 do
   begin
     if (DisplayType = RESOURCEDISPLAYTYPE_GENERIC) or
       (NetResourceList[i].dwDisplayType = DisplayType) then begin
       List.AddObject(NetResourceList[i].lpRemoteName,
                     Pointer(NetResourceList[i].dwDisplayType));
     end;
     if (NetResourceList[i].dwUsage and RESOURCEUSAGE_CONTAINER) <> 0 then
       ScanLevel(@NetResourceList[i]);
   end;
 finally
   FreeMem(NetResourceList);
 end;
end;
begin
 ScanLevel(Nil);
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
 ScanNetworkResources(RESOURCETYPE_DISK, RESOURCEDISPLAYTYPE_SERVER, ListBox1.Items);
end;


 
IOrist   (2008-04-26 13:23) [2]

спс



Страницы: 1 вся ветка

Текущий архив: 2008.05.25;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.019 c
2-1209367199
operator
2008-04-28 11:19
2008.05.25
собственные hint и warning


15-1207752638
@!!ex
2008-04-09 18:50
2008.05.25
Как хранить Backup?


2-1209670456
Jebiga
2008-05-01 23:34
2008.05.25
Как работать с GIF файлами?


15-1207909325
savyhinst
2008-04-11 14:22
2008.05.25
Wait.avi


2-1209577893
Kiril
2008-04-30 21:51
2008.05.25
Не срабатывает ConvertToTable