![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Доброго времени суток товарищи.
Есть небольшая проблема. Необходимо получить список доступных ПК в локальной сети. Изучив множество ссылок и форумов решения так и не нашел. В конечно итого необходимо получить что то типа того что выдает данная программа http://www.nirsoft.net/utils/wake_on_lan.html Помогите пожалуйста. Заранее спасибо. |
#2
|
||||
|
||||
![]() Код:
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, Entries, 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; Помогаю платно. Помогаю иногда бесплатно. |
#3
|
|||
|
|||
![]() Спасибо, но данный код я уже видел раз 10 и после чательного его изучения он не заработал...
|
#4
|
||||
|
||||
![]() Так и должно быть, это свойство большинства кода в этих ваших интернетах. Своя голова на что?
Беглым взглядом вижу, что проблема может быть со string[25] в модных версиях Delphi, поскольку ShortString не поддерживают Юникод. Проверять и компилировать лень. Жарко, да и выходные. Не стоит путать форумы с богадельнями. © Bargest |
#5
|
||||
|
||||
![]() код WNetOpenEnum - WNetEnumResource - WNetCloseEnum работает
Пишу программы за еду. __________________ |
#6
|
|||
|
|||
![]() Я понимаю что данный код работает, но конкретно в той реализации которая представлена он возвращает 0 компьютеров, я не знаю с чем это связанно... Я так понимаю что получить данный список можно только основываясь на данных функциях и все? На данный момент использую код взятый из исходников программы "Пользователи и группы домена." скачанный с сайта http://rouse.drkb.ru/network.php но полученный список не достаточно актуальный... И большая часть либо выключенная либо имеет другой IP... мне нужен список более актуальный, а точнее то что работает в данный момент...
Последний раз редактировалось AngelNine, 11.08.2014 в 10:30. |