Главная страница
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.015 c
2-1208955685
Кирей
2008-04-23 17:01
2008.05.25
не срабатывает простой запрос


2-1208974082
deras
2008-04-23 22:08
2008.05.25
DBComboBox Как юзать компонент?


2-1209713192
SergeyS
2008-05-02 11:26
2008.05.25
Помогите, пожалуйста.


2-1209128425
Fr1K
2008-04-25 17:00
2008.05.25
Фильт


11-1189518059
De2232345
2007-09-11 17:40
2008.05.25
Animation для kol