Home

Page 177
Page 177
background image

170 Глава 4

begin

end;

Внутри ЦИКЛа ПОСТОЯННО

 фуНКЦИЯ WNetEnumResource. ЕсЛИ

возвращает ошибку (результат не равен

 перечисление закры-

вается с помощью

 и мы выходим из процедуры, потому что

больше открытых ресурсов нет. У функции

 есть четыре

параметра:

 Здесь нужно указать ту же переменную, которую мы указывали в послед-

нем параметре при открытии перечисления

2. Здесь нужно указать переменную, в которой хранится число необходи-

мых к возврату ресурсов. В примере это переменная EntriesToGet, в

торой записано число 2000. После того как функция выполнится, в этой

переменной будет не 2000, а количество реально открытых ресурсов.

3. Здесь должен быть массив структур TNetResource. Его длина должна

быть достаточной для хранения возвращенной информации об открытых
ресурсах. В листинге запрашивается максимум 2 000 ресурсов, значит,

Массив ДОЛЖеН СОСТОЯТЬ ИЗ 2 000 Структур

 of TNetResource;).

4. Размер массива, указанного в предыдущем параметре.

У функции

 есть только один параметр, в котором

ны указать ту же переменную, что мы писали в последнем параметре при

ОТКРЫТИИ

Если перечисление прошло успешно, то мы можем вывести полученную

информацию на экран. Для этого запустим цикл от 0 до количества возвра-
щенных значений EntriesToGet:

for i := 1 to EntriesToGet do

Внутри цикла добавляем в компонент

 строку, содержащую имя ре-

сурса. Имя полученного открытого ресурса можно прочитать в переменной

lpRemoteName структуры

 Единственное, что тут надо

ПОМНИТЬ:

 — ЭТО не строка, ПОЭТОМУ ЭТОТ

параметр надо превратить в строку. Для этого используется функция

Итак, сканер расшаренных ресурсов готов, правда, он пока сканирует толь-

ко одну указанную машину. Из-за этого использование данной программы

в боевых условиях нереально. Но никто же не мешает вам дополнить про-
грамму перебором, ведь это не так уж и сложно.

Единственный недостаток такого алгоритма сканирования

 слишком

большая медлительность в работе. Это связано не с самим алгоритмом,


Copyright © 2020 Файлообменник files.d-lan.dp.ua

Использование любых материалов сайта возможно только с разрешения автора.