Форум: "Сети";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.29;
Скачать: [xml.tar.bz2];




Вниз

Определениие списка компьютеров в сети. 


ctapik-net   (2002-02-14 15:53) [0]

Использую следующую процедуру для определения компов в сети


procedure TGetComputers.EnumSubResources(Items: TTreeNodes; Node: TTreeNode;lpNetResource: PNetResource);
const
MAX_RES = 16;
type
PResources = ^TResources;
TResources = array[0..MAX_RES-1] of TNetResource;
var
hEnum: THandle;
Count: Cardinal;
Res: Integer;
Resources: PResources;
BufferSize: Cardinal;
I: Integer;
NewNode: TTreeNode;
NewNodeName: String;
begin
// Открываем доступ к перечню сетевых ресурсов
Res := WNetOpenEnum(RESOURCE_GLOBALNET, RESOURCETYPE_ANY, 0, lpNetResource, hEnum);
if NO_ERROR <> Res then
Exit;
// Массив, в который читаются сетевые ресурсы
BufferSize := SizeOf(TResources);
GetMem(Resources, BufferSize);
while Not Terminated do
begin
// Загружаем перечень ресурсов в массив
// Если возникла ошибка, значит, ресурсов больше нет --- покидаем цикл
Count := MAX_RES;
Res := WNetEnumResource(hEnum, Count, Resources, BufferSize);
if (Res <> NO_ERROR) and (Res <> ERROR_MORE_DATA) then
Break;
// В противном случае копируем сетевые ресурсы в дерево
for I := 0 to Count - 1 do
begin
// Добавляем дочерний узел
If Terminated Then Break ;
if Assigned(Resources^[I].lpRemoteName) then
NewNodeName := String(Resources^[I].lpRemoteName)
else
NewNodeName := String(Resources^[I].lpComment);
NewNode := Items.AddChild(Node, NewNodeName);
// Вызываем процедуру рекурсивно для заполнения этого узла,
// если узел содержит подузлы
if (Resources^[I].dwUsage and RESOURCEUSAGE_CONTAINER) <> 0 then
EnumSubResources(Items, NewNode, @(Resources^[I]));
end;
end;
FreeMem(Resources);
// Закрываем доступ
WNetCloseEnum(hEnum);
end ;


Она почему-то находит не все компы? Помогите понять где собака зарыта! Заранее благодарен.



Dimka Maslov   (2002-02-15 15:26) [1]

http://delphi.mastak.ru/cgi-bin/forum.pl?look=1&id=1013700538&n=4




Форум: "Сети";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.04.29;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.037 c
3-94291           B_A_V                 2002-04-08 18:39  2002.04.29  
Помогите пожалуйста разобраться, бьюсь уже целые сутки над создан


14-94574          False                 2002-03-20 12:28  2002.04.29  
Какое расширение имееи Oracle?


3-94316           fishka                2002-04-09 10:26  2002.04.29  
Перевод базы с InterBase5.0 на InterBase 6.0


7-94587           XM-AD                 2002-01-30 02:29  2002.04.29  
А можно ли???


7-94590           Varfolomey            2002-01-20 20:29  2002.04.29  
RS232 - контроль чётности, что делать?