Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2004.09.05;
Скачать: [xml.tar.bz2];

Вниз

Как найти все компьютеры в рабочей группе? Для 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.029 c
1-1093081640
Рома
2004-08-21 13:47
2004.09.05
Что-то не то с библиотекой


4-1090495731
@lex@nder
2004-07-22 15:28
2004.09.05
Запись CD


4-1090415837
Кириешки
2004-07-21 17:17
2004.09.05
Как дождаться пока функция вызываемая из Dll отработает?


3-1092226739
fedor
2004-08-11 16:18
2004.09.05
Как в FastReport 3 отобразить содержимое StringGrid?


14-1092908033
Ega23
2004-08-19 13:33
2004.09.05
Зацепило сильно...





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский