Главная страница
    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.46 MB
Время: 0.029 c
4-1090575633
webpauk
2004-07-23 13:40
2004.09.05
TStrings


1-1092936808
3APA3A
2004-08-19 21:33
2004.09.05
Правильное использование Dispose()...


1-1092999796
3APA3A
2004-08-20 15:03
2004.09.05
Корректное уничтожение форм, созданных в runtime...


4-1090302822
acidman
2004-07-20 09:53
2004.09.05
LPT под win2k/XP/NT


8-1087242022
DimDim
2004-06-14 23:40
2004.09.05
TRxGIFAnimator и проблемы с ним





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский