Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ободяк 3 курс / IM_Delphi.doc
Скачиваний:
21
Добавлен:
19.04.2015
Размер:
165.89 Кб
Скачать

5 Перелік мережних ресурсів

Термін “перелічувати” (enumerate) означає: складати список подібних об’єктів, наприклад, ресурсів сервера. Для переліку мережних ресурсів в середовищі Delphi можна використовувати такі функції Win32 API.

WnetOpenEnum (dwScope, dwType, dwUsage : DWORD; lpNetResource : TnetResource; var lphEnum : THandle) – відкриває переліку. Тут dwScope – діапазон переліку, що набуває таких значень: RESOURCE_CONNECTED = 1 – підключені в даний час ресурси, RESOURCE_GLOBALNET = 2 – усі ресурси в мережі, RESOURCE_REMEMBERED = 3 – запам’ятовані з'єднання. Параметри dwType – тип ресурсу, dwUsage – тип використання ресурсу, що набуває значення: 0 – усі ресурси, RESOURCEUSAGE_CONNECTABLE = 1 – підключені безпосередньо, RESOURCEUSAGE_CONTAINER = 2 – контейнери. Параметр lpNetResource – покажчик на запис типу TnetResource, що містить опис контейнера для переліку, для root використовують значення nil. Запис TnetResource має такі поля: dwScope : DWORD – діапазон переліку; dwType : DWORD – тип: диск, принтер або інший пристрій; dwDisplayType : DWORD – тип: домен, сервер або точка розподіленого доступу, dwUsage – тип використання: підключений безпосередньо або як контейнер, lpLocalName : PAansiChar – локальне ім'я, lpRemoteName : PAnsiChar - мережне ім'я, lpComment : PAnsiChar – коментар, lpProvider : PAnsiChar – мережний провайдер. Параметр lphEnum – дескриптор ресурсу, повертається функцією.

WnetEnumResource (hEnum : Thandle; var lpCount : DWORD; lpBuffer : Pointer; var lpBufferSize : DWORD) – виконує переліку. Тут lpCount – кількість входів у списку ресурсів, що знаходяться в буфері; lpBuffer – адреса буфера, lpBufferSize – розмір буфера.

6 Приклад переліку ресурсів

Наведемо приклад програми для переліку ресурсів локальної мережі.

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls;

type

TForm1 = class(TForm)

Button1: TButton;

Memo1: TMemo;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.DFM}

procedure enumerate (p:pointer);

var

lpNR: PNetResource;

hEnum: THandle;

sizeb, cEntries, Result: DWORD;

s1, s2, s3, s4, s5: string;

begin

Result:= WnetOpenEnum (RESOURCE_GLOBALNET, RESOURCETYPE_DISK, 0, p, hEnum);

sizeb:= 16000;

lpNR:= PnetResource (GlobalAlloc (GPTR, sizeb));

cEntries:= 1;

while Result=NO_ERROR do

begin

Result:= WnetEnumResource

(henum, cEntries, lpNR, sizeb);

if Result>0 then

MessageBox (0, ‘Переліку закінчено’, ‘’, 1)

else if Resul=0 then

begin

s1:= StrPas (lpNR^. lpLocalName);

s2:= StrPas (lpNR^.lpRemoteName);

s3:= StrPas (lpNR^.lpComment);

s4:= StrPas (lpNR^.lpProvider);

s5:= IntToStr (lpNR^.dwUsage);

Form1.Memo1.Lines.Add

(s1+’ ,’+s2+’ ,’+s3+’ ,’+s4+’ ,’+s5);

if (lpNR^.dwUsage and

RESOURCEUSAGE_CONTAINER) =RESOURCEUSAGE_CONTAINER

then enumerate (lpNR);

end;

end;

WnetCloseEnum(henum);

end;

procedure TForm1.Button1Click(Sender: TObject);

begin

enumerate(nil);

end;

end.

СПИСОК ЛІТЕРАТУРИ

Основна література

  1. Microsoft Corporation. Компьютерные сети. Сертификация Network+: Учебный курс. – М.: Русская редакция,2002. – 704с.

  2. Дарахвелидзе П., Марков Е. Delphi 4. - СПб.: БХВ – Санкт-Петербург, 1998. – 816с.

  3. Олифер В.Г. Компьютерные сети. Принципы, технологии, протоколы. – СПб.: Питер, 2003. – 864с.

Література видавництва СумДУ

  1. Бабій М.С. Локальні мережі ЕОМ:Навчальний посібник. – Суми:СумДУ, 1999. – 64с.

  2. Методические указания к лабораторным работам “Использование сетевых ресурсов Win95”, “Сетевые функции Win32 API”. – Сумы:СумГУ, 1999. – 23с.

Навчальне видання

МЕТОДИЧНІ ВКАЗІВКИ

ДO ВИКОНАНЯ КОНТРОЛЬНОЇ РОБОТИ

Соседние файлы в папке Ободяк 3 курс