Использование внешних объектов автоматизации (на примере Microsoft Word)
Для того чтобы из сценария получить доступ к свойствам или методам внешнего сервера автоматизации, вначале надо "создать" соответствующий объект, т. е. загрузить в память экземпляр нужного СОМ-объекта и сохранить в переменной ссылку на этот объект. Объект в сценарии может создаваться несколькими способами: · с помощью метода createobject объекта wscript (объектная модель WSH); · с помощью конструкции New Activexobject (язык JScript); · с помощью функции createobject (язык VBScript).
В любом случае в используемый метод или функцию в качестве параметра передается программный идентификатор объекта (ProgID), заключенный в скобки. Пример на языке JScript:
var WA=WScript.CreateObject("Word.Application"); To же самое на VBScript: Set WA=WScript.CreateObject("Word.Application")
Перед точкой в ProgID стоит имя библиотеки типов (type library) для объекта, которая может существовать как в виде отдельного файла с расширением tlb, так и в виде части файла с исполняемым кодом объекта (библиотека типов, содержащая сведения о СОМ-объекте, регистрируется в системном реестре при установке приложения, использующего этот объект). После точки в ProgID указывается имя класса, содержащего свойства и методы, доступные для использования другими приложениями.
Выполняя метод CreateObject, интерпретатор сценария через ProgID получает из системного реестра путь к файлам нужной библиотеки типов. Затем с помощью этой библиотеки в память загружается экземпляр запрашиваемого объекта, и его интерфейсы становятся доступными для использования в сценарии. Ссылка на созданный объект сохраняется в переменной; в дальнейшем, используя эту переменную, мы получаем доступ к свойствам и методам объекта, а также к его вложенным объектам (если они имеются). Для примера рассмотрим, каким образом из сценария можно управлять
работой Microsoft Word, который является сервером автоматизации (см. листинги 4.26 и 4.27). Сначала создается главный объект word.Application, который запускает приложение Microsoft Word:
WA=WScript.CreateObject("Word.Application"); Затем создается новый пустой документ, в результате в переменную wd заносится ссылка на Объект Document:
WD=WA.Documents.Add(); Наконец, в переменную sel заносится ссылка на объект selection, с помощью которого можно задать тип и размер шрифта, тип выравнивания абзацев и напечатать в документе строки текста:
Sel=WA.Selection;
В результате выполнения сценариев PrintlnWord.js или PrintlnWord.vbs в новом документе Word печатаются две строки текста, после чего с помощью метода Printout объекта Document содержимое документа выводится на принтер:
WD.Printout();
Листинг 4.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(); //Выводим документ на принтер /************* Конец *******************************************/
Листинг 4.27. Использование сервера автоматизации Microsoft 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 'Выводим документ на принтер ‘************* Конец *********************************************
Воспользуйтесь поиском по сайту: ©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...
|