Книга: Windows Script Host для Windows 2000/XP
Использование внешних объектов автоматизации (на Microsoft Word)
Разделы на этой странице:
Использование внешних объектов автоматизации (на Microsoft Word)
Для того чтобы из сценария получить доступ к свойствам или методам внешнего сервера автоматизации, вначале надо "создать" соответствующий объект, т.е. загрузить в память экземпляр нужного СОМ-объекта и сохранить в переменной ссылку на этот объект. Напомним, что объект в сценарии может создаваться несколькими способами:
? с помощью метода CreateObject
объекта WScript
(объектная модель WSH);
? с помощью конструкции new ActiveXObject
(язык JScript);
? с помощью функции CreateObject
(язык VBScript).
В любом случае в используемый метод или функцию в качестве параметра передается программный идентификатор объекта (ProgID), заключенный в скобки. Пример на языке JScript:
var WA=WScript.CreateObject("Word.Application");
То же самое на VBScript:
Set WA=WScript.CreateObject("Word.Application")
Перед точкой в ProgID стоит имя библиотеки типов (type library) для объекта, которая может существовать как в виде отдельного файла с расширением tlb, так и в виде части файла с исполняемым кодом объекта (библиотека типов, содержащая сведения о СОМ-объекте, регистрируется в системном реестре при установке приложения, использующего этот объект). После точки в ProgID указывается имя класса, содержащего свойства и методы, доступные для использования другими приложениями.
Выполняя метод CreateObject
, интерпретатор сценария через ProgID получает из системного реестра путь к файлам нужной библиотеки типов. Затем с помощью этой библиотеки в память загружается экземпляр запрашиваемого объекта, и его интерфейсы становятся доступными для использования в сценарии. Ссылка на созданный объект сохраняется в переменной; в дальнейшем, используя эту переменную, мы получаем доступ к свойствам и методам объекта, а также к его вложенным объектам (если они имеются).
Для примера рассмотрим, каким образом из сценария можно управлять работой Microsoft Word, который является сервером автоматизации (листинги 2.26 и 2.27).
Замечание
Более подробно объектная схема Microsoft Word описывается в главе 9.
Сначала создается главный объект Word.Application
, который запускает приложение Microsoft Word:
WA=WScript.CreateObject("Word.Application");
Затем создается новый пустой документ, в результате в переменную WD заносится ссылка на объект Document
:
WD=WA.Documents.Add();
Наконец, в переменную Sel
заносится ссылка на объект Selection
, с помощью которого можно задать тип и размер шрифта, тип выравнивания абзацев и напечатать в документе строки текста:
Sel=WA.Selection;
В результате выполнения сценариев PrintInWord.js или PrintInWord.vbs в новом документе Word печатаются две строки текста (рис. 2.10), после чего с помощью метода PrintOut
объекта Document
содержимое документа выводится на принтер:
WD.PrintOut();
Рис. 2.10. Результат выполнения сценариев PrintInWord.js
Листинг 2.26. Использование сервера автоматизации Microsoft Word (JScript)
/*******************************************************************/
/* Имя: PrintInWord.js */
/* Язык: JScript */
/* Описание: Использование из сценария внешнего объекта */
/* автоматизации (Microsoft Word) */
/*******************************************************************/
var WA,WD,Sel; //Объявляем переменные
//Создаем объект--приложение Microsoft Word
WA=WScript.CreateObject("Word.Application");
//Можно было использовать конструкцию
//WA=new ActiveXObject("Word.Application");
WD=WA.Documents.Add(); //Создаем новый документ (объект Document)
WA.Visible=true; //Делаем Word видимым
Sel=WA.Selection; //Создаем объект Selection
Sel.Font.Size=14; //Устанавливаем размер шрифта
Sel.ParagraphFormat.Alignment=1; //Выравнивание по центру
Sel.Font.Bold=true; //Устанавливаем полужирный шрифт
Sel.TypeText("Привет!n"); //Печатаем строку текста
Sel.Font.Bold=false; //Отменяем полужирный шрифт
Sel.ParagraphFormat.Alignment=0; //Выравнивание по левому краю
//Печатаем строку текста
Sel.TypeText("Эти строки напечатаны с помощью WSH.");
WD.PrintOut(); //Выводим документ на принтер
/************* Конец *********************************************/
Листинr 2.27. Использование сервера автоматизации Мiсrоsоft Word (VBScript)
'*******************************************************************
' Имя: PrintInWord.vbs
' Язык: VBScript
' Описание: Использование из сценария внешнего объекта
' автоматизации (Microsoft Word)
'*******************************************************************
Option Explicit
Dim WA,WD,Sel ' Объявляем переменные
'Создаем объект--приложение Microsoft Word
Set WA=WScript.CreateObject("Word.Application")
' Можно было использовать конструкцию
' Set WA=CreateObject("Word.Application")
Set WD=WA.Documents.Add 'Создаем новый документ (объект Document)
WA.Visible=true ' Делаем Word видимым
Set Sel=WA.Selection 'Создаем объект Selection
Sel.Font.Size=14 'Устанавливаем размер шрифта
Sel.ParagraphFormat.Alignment=1 'Выравнивание по центру
Sel.Font.Bold=true 'Устанавливаем полужирный шрифт
Sel.TypeText "Привет!" & vbCrLf 'Печатаем строку текста
Sel.Font.Bold=false 'Отменяем полужирный шрифт
Sel.ParagraphFormat.Alignment=0 'Выравнивание по левому краю
'Печатаем строку текста
Sel.TypeText "Эти строки напечатаны с помощью WSH."
WD.PrintOut 'Выводим документ на принтер
'************* Конец *********************************************
- Вывод на экран текстовых строк
- Ввод строк текста
- Получение свойств WSH и запущенного сценария
- Работа с параметрами командной строки сценария
- Выход из сценария с определенным кодом завершения
- Использование внешних объектов автоматизации (на Microsoft Word)
- Запуск из сценариев внешних программ
- Доступ к специальным папкам Windows ХР
- Создание ярлыков в специальных папках
- Работа с системным реестром Windows
- Работа с ресурсами локальной сети
- Запуск сценариев на удаленных машинах. Контроль за ходом выполнения таких сценариев
- Глава 2 Примеры использования стандартных объектов WSH (JScript и VBScript)
- Восстановление с использованием инструмента gbak
- Типы страниц и их использование
- Иерархия объектов в InterBase
- Использование констант
- Использование переменной окружения ISC_PATH
- 1.3. Правила подключения к компьютеру внешних устройств
- Использование сервера Yaffil внутри процесса
- Использование CAST() с типами дата
- Имена объектов длиной 68 символов
- Безопасность внешних таблиц. Параметр EXTERNAL FILE DIRECTORY
- Создание объектов Collection