![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Список компьютеров в сети и WMI для них [D6, Win2k, WinXP]
Barsik © (2004-12-03 11:02:00)Очень нужна ваша помощь. Как получить список компьютеров в сети.
Помогите пожалуйста! Или хотя бы ткине носом в линк...
На вторую часть вопроса я вроде ответ нашел (благо много методик есть для получения информации по WMI), но все равно буду рад вашим советам
Barsik (2004-12-03 22:58:00) [1]господа специалисты, ну проникнитесь проблемой...очень нужно получить список сетей...
Barsik (2004-12-03 15:28:00) [2]Я взял пример из здешнего 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 }
==========================================
Но есть одна особенность. Если я задаю Workgroup пустой, она мне находит список верхней сетевой конфигурации
если задаю имя сети, то выдает список серверов в ней, но на промемежуточный уровень именуемый "Сеть Microsoft Windows" список самих серверов не выдает.
Может кто знает как надо параметры подправить?
Пожалуйста, очень нужна Ваша помощь!!!!
globus66 (2004-12-03 15:01:00) [3]Вообще WNetEnumResource.
А если дать более расширенный ответ, то в справке по Win32 SDK Reference, поставляемого в месте с дельфой, на вкладке Index
набираем WNet* ну и собственно читаем все что начинается с "WNet" - все это будет относиться к сетям Microsoft
Можно еще попробовать в поисковике набрать "WNetEnumResource"
И одна из ближайших ссылок будет содержать готовый пример