KnigaRead.com/

Андрей Попов - Windows Script Host для Windows 2000/XP

На нашем сайте KnigaRead.com Вы можете абсолютно бесплатно читать книгу онлайн Андрей Попов, "Windows Script Host для Windows 2000/XP" бесплатно, без регистрации.
Перейти на страницу:

ECHO Запускаем сценарий Quit.js...

START /W Quit.js

REM Определяем код завершения для сценария Quit.js

IF ERRORLEVEL 1 GOTO :Ok

ECHO Для выхода из Quit.js была нажата кнопка Отмена

GOTO :end

:Ok

ECHO Для выхода из Quit.js была нажата кнопка Ok

:end

Рспользование внешних объектов автоматизации (РЅР° 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 видимым

Перейти на страницу:
Прокомментировать
Подтвердите что вы не робот:*