Андрей Попов - Windows Script Host для Windows 2000/XP
- Название:Windows Script Host для Windows 2000/XP
- Автор:
- Жанр:
- Издательство:БХВ-Петербург
- Год:2004
- Город:Санкт-Петербург
- ISBN:5-94157-197-6
- Рейтинг:
- Избранное:Добавить в избранное
-
Отзывы:
-
Ваша оценка:
Андрей Попов - Windows Script Host для Windows 2000/XP краткое содержание
В книге описывается сервер сценариев Windows Script Host (WSH) версии 5.6, который является одним из стандартных компонентов Windows ХР, а также может быть установлен в более ранних версиях Windows. Приводятся сценарии на языках VBScript и JScript, иллюстрирующие применение стандартных объектов WSH 5.6, включая создание из сценариев дочерних процессов и запуск сценариев на удаленных компьютерах. В качестве более сложных примеров рассматриваются сценарии, работающие с базами данных, управляющие приложениями Microsoft Office, организующие графический пользовательский интерфейс, использующие технологии ADSI (Active Directory Service Interface) и WMI (Windows Management Instrumentation) для решения задач администрирования. Освещены вопросы практической работы с XML-файлами и создания СОМ-объектов. Особое внимание уделяется вопросам безопасности при работе со сценариями, приводятся конкретные примеры настроек политик безопасности. К книге прилагается дискета с исходными текстами большинства примеров.
Windows Script Host для Windows 2000/XP - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
□ элемент может содержать один или несколько элементов , или .
Обязательными для создания компонента-сценария являются элементы , , и .
Опишем теперь элементы XML, использующиеся в WSC-файлах, более подробно.
Элементы WSC-файла
В WSC-файлы можно вставлять комментарии двумя разными способами: с помощью элемента или элемента . Например:
или
Второй комментарий
Элементы и
Напомним, что эти элементы являются стандартными для разметки W3C XML 1.0 (см. главу 3). Для того чтобы использовать символы кириллицы в файлах компонентов-сценариев, нужно обязательно в элементе указать атрибут encoding
со значением, соответствующим используемой кодировке, например:
Элемент < package >
Этот элемент необходим в тех WSC-файлах, в которых с помощью элементов определено более одного компонента. В этом случае является контейнером для элементов .
Если же в WSC-файле описан только один компонент, то элемент можно не использовать.
Элемент
Внутри элемента описывается один компонент-сценарий (СОМ-объект). Необязательный атрибут id
определяет идентификатор объекта (это может понадобиться в том случае, когда в одном WSC-файле находится несколько СОМ-объектов).
Элемент
В элементе приводится информация, которая необходима для регистрации в системе компонента-сценария в качестве СОМ-объекта.
Атрибуты progid
и classid
задают соответственно программный идентификатор и глобальный код, с помощью которых компонент -сценарий может быть использован в других приложениях (например, progid="MyClass.MyObject"
и classid="{424ac2bc-5732-4dea-be17-0211af99cd79}"
). Из этих двух атрибутов обязательно должен быть указан хотя бы один (можно указать и оба). Если в элементе приведен только атрибут progid
, то глобальный код (GUID) для описываемого объекта будет сгенерирован автоматически при регистрации объекта в системе. Рекомендуется, однако, явно указывать глобальный код объекта, т.к. в противном случае этот код может оказаться различным при регистрации объекта на разных машинах.
Глобальный код объекта может быть сгенерирован с помощью описанной ниже программы Windows Script Component Wizard.
С помощью атрибута description
можно задать краткое описание объекта, которое будет занесено в системный реестр при регистрации объекта.
Атрибут version
позволяет указать номер версии описываемого объекта. Этот номер позволяет запрашивать из приложения определенную версию СОМ-объекта (он должен быть указан через точку после программного идентификатора объекта, например "Myclass.MyObject.1"
).
С помощью элемента внутри контейнера можно указать две функции, одна из которых будет вызываться при регистрации объекта в системе (эта функция должна иметь имя Register()
), а другая — при удалении объекта из системы (эта функция должна иметь имя Unregister()
).
Элемент
В элементе описываются те свойства, методы и события объекта, которые после его регистрации будут доступны извне другим приложениям (клиентам автоматизации). Другими словами, этот элемент является контейнером для элементов , и .
Элемент
Элемент объявляет свойство СОМ-объекта, которое будет доступно для клиентов автоматизации.
Атрибут name
определяет имя этого свойства (в дальнейшем внутри элемента должна быть объявлена глобальная переменная с тем же именем, с помощью которой можно будет изменять значение свойства). Объявляемое свойство может быть доступно либо только для чтения (внутри контейнера указан только элемент ), либо только для записи (внутри указан только элемент ), либо и для чтения и для записи (внутри указаны как элемент , так и элемент ).
Атрибут internalName
в элементах и задает имена функций, которые будут использоваться для чтения и записи свойства соответственно (эти функции описываются внутри контейнера ). Если же атрибут internalName
не указан, то чтение (запись) свойства производится в функции с именем get_ PropertyName (put_ PropertуName )
, где PropertyName
— имя свойства (атрибут ).
Элемент
Элемент объявляет метод СОМ-объекта, который будет доступен для внешних клиентов автоматизации.
Атрибут name
определяет имя этого метода. В дальнейшем, если не указан атрибут internalName
, внутри контейнера должна быть описана функция или процедура с таким же именем
Задание атрибута internalName
позволяет внутри контейнера использовать для реализации метода функцию или процедуру с именем, отличным от значения аргумента name
.
Список параметров метода (если они имеются) задается внутри элемента с помощью элементов , каждый из которых должен содержать аргумент name
, определяющий имя параметра.
Элемент
Элемент объявляет событие, которое может возникать в СОМ-объекте и обрабатываться клиентами автоматизации.
Аргумент name
, как обычно, определяет имя этого события. С помощью аргумента dispid
можно указать числовой идентификатор интерфейса события. Этот идентификатор компилируется в библиотеку типов объекта и используется в клиентском приложении для обработки нужного события.
Для того чтобы вызвать наступление события, внутри элемента используется функция fireEvent()
с именем нужного события в качестве параметра.
Элементы , и
Элементы , и имеют тот же смысл, что и в модели WS XML (см. описание этих элементов в главе 3).
Элемент
В элементе приводится сценарий на языках JScript или VBScript, который определяет поведение создаваемого СОМ-объекта — здесь нужно задать глобальные переменные, соответствующие объявленным в элементах свойствам объекта, описать функции или процедуры для объявленных с помощью элементов методов объекта и т.д.
Перейдем теперь к рассмотрению конкретного примера, для которого мы подробно опишем создание компонента-сценария, регистрацию его в системе в качестве СОМ-объекта и использование этого объекта в JScript-сценарии.
Пример: СОМ-объект для архивирования файлов
Представим себе следующую ситуацию. Имеется несколько каталогов на жестком диске, в которых хранятся рабочие файлы разных пользователей. Необходимо каждый день с помощью программы-архиватора arj.exe делать архивы этих файлов в заданный каталог, при этом имя архивного файла должно соответствовать шаблону ппММДД.arj", где пп — уникальный для каждого пользователя префикс, ММ — текущий месяц, ДД — текущий день.
Мы создадим компонент-сценарий DateArc.WSC
, с помощью свойств и методов которого можно будет выполнить поставленную задачу.
Интервал:
Закладка: