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

Вниз

Как найти все компьютеры в рабочей группе? Для WinNT/2000/XP   Найти похожие ветки 

 
maguk   (2004-06-27 15:21) [0]

Доброго времени суток, Мастера!
Возникла проблема такого рода: нужно перечислить все раб. группы в сети и компьютеры в каждой рабочей группе. В FAQ"е уже давно нашел замечательную процедуру:

var
 Computer      : Array[1..500] of String[25];
 ComputerCount : Integer;

procedure FindAllComputers(Workgroup: String);
Var
 EnumHandle  : THandle;
 WorkgroupRS : TNetResource;
 Buf         : Array[1..500] of TNetResource;
 BufSize     : Integer;
 Entries     : Integer;
 Result      : Integer;
begin   ComputerCount := 0;
 Workgroup := Workgroup + #0;
 FillChar(WorkgroupRS, SizeOf(WorkgroupRS), 0);
 With WorkgroupRS do begin
   dwScope := 2;
   dwType := 3;
   dwDisplayType := 1;
   dwUsage := 2;
   lpRemoteName := @Workgroup[1];
 end;
 WNetOpenEnum(RESOURCE_GLOBALNET,
              RESOURCETYPE_ANY,
              0,
              @WorkgroupRS,
              EnumHandle);
 Repeat
   Entries := 1;
   BufSize := SizeOf(Buf);
   Result := WNetEnumResource(EnumHandle,
                              Entries,
                              @Buf,
                              BufSize );
   If (Result = NO_ERROR) and (Entries = 1) then begin
     Inc( ComputerCount );
     Computer[ComputerCount] := StrPas(Buf[1].lpRemoteName);
   end;
 Until (Entries <> 1) or (Result <> NO_ERROR);
 WNetCloseEnum(EnumHandle);
end;  { Find All Computers }


...и даже сам догнал, что она не только перечисляет компютеры в раб. группе, но и сами группы (для этого достаточно передать ей в качестве параметра пустую строку). Все это дело замечательно работало в Win9x/Me, но в XP (и, как я подозреваю, во всем семействе NT), если в эту функцию передать пустую строку, то она начинает перечисление не с раб. групп, а со всяких "Microsoft Windows Network", "Web Client Network" и "Службы терминалов Microsoft". Собссно вопрос как в WinNT/2000/XP перечислить все раб. группы и компьютеры в них?

Заранее благодарен.


 
maguk   (2004-07-01 14:03) [1]

up


 
Rouse_ ©   (2004-07-01 15:55) [2]

http://delphimaster.net/view/6-1088540567/



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

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

Наверх




Память: 0.47 MB
Время: 0.037 c
4-1090406888
Delphi5.01
2004-07-21 14:48
2004.09.05
Ia pitaus ispolzovat "rar.exe" console dla arhivacii dannih, ...


1-1093082083
Mox Fulder
2004-08-21 13:54
2004.09.05
Скрыть форму


1-1093004464
Aks
2004-08-20 16:21
2004.09.05
работа с АутЛуком. Как избежать лишних вопросов?


3-1092132464
REA
2004-08-10 14:07
2004.09.05
Названия ключей


14-1092638090
Ega23
2004-08-16 10:34
2004.09.05
Господа, как всё-таки правильно?