Чтение онлайн

на главную - закладки

Жанры

Windows Script Host для Windows 2000/XP

Попов Андрей Викторович

Шрифт:

Пример подобного ВАТ-файла приведен в листинге 2.25. Здесь сценарий Quit.js запускается с помощью команды

START
с ключом
/WAIT
, указывающим на то, что выполнение ВАТ-файла должно быть приостановлено до окончания работы Quit.js. После этого, если код завершения pавен 1 (в диалоговом окне сценария была нажата кнопка OK), происходит переход к метке
:Ok
и выдача с помощью команды
ECHO
соответствующего сообщения на экран.

Замечание

Для

корректного отображения на экране символов кириллицы в BAT-файлах должна использоваться DOS-кодировка.

Если же код завершения сценария Quit.js был равен 0 (в диалоговом окне была нажата кнопка Отмена), то управление перейдет к строке

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

Листинг 2.25. Анализ кода выхода сценария Quit.js (Check.bat)

@ЕСНО OFF

REM **************************************************************

REM Имя: check.bat

REM Язык: BAT-файл

REM Кодировка: DOS

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

REM **************************************************************

@ЕСНO OFF

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 */

Поделиться:
Популярные книги

Миллионщик

Шимохин Дмитрий
3. Подкидыш
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Миллионщик

Орден Багровой бури. Книга 1

Ермоленков Алексей
1. Орден Багровой бури
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Орден Багровой бури. Книга 1

Лекарь Империи 8

Лиманский Александр
8. Лекарь Империи
Фантастика:
попаданцы
городское фэнтези
аниме
5.00
рейтинг книги
Лекарь Империи 8

Огненный князь 3

Машуков Тимур
3. Багряный восход
Фантастика:
фэнтези
боевая фантастика
попаданцы
5.00
рейтинг книги
Огненный князь 3

Страж. Тетралогия

Пехов Алексей Юрьевич
Страж
Фантастика:
фэнтези
9.11
рейтинг книги
Страж. Тетралогия

Эволюционер из трущоб. Том 11

Панарин Антон
11. Эволюционер из трущоб
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Эволюционер из трущоб. Том 11

Новик

Ланцов Михаил Алексеевич
2. Помещик
Фантастика:
альтернативная история
6.67
рейтинг книги
Новик

Компас желаний

Кас Маркус
8. Артефактор
Фантастика:
городское фэнтези
аниме
фэнтези
5.00
рейтинг книги
Компас желаний

Личный аптекарь императора

Карелин Сергей Витальевич
1. Личный аптекарь императора
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Личный аптекарь императора

Искатель 7

Шиленко Сергей
7. Валинор
Фантастика:
рпг
фэнтези
попаданцы
гаремник
5.00
рейтинг книги
Искатель 7

Сирийский рубеж

Дорин Михаил
5. Рубеж
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Сирийский рубеж

Император Пограничья 10

Астахов Евгений Евгеньевич
10. Император Пограничья
Фантастика:
городское фэнтези
аниме
фантастика: прочее
попаданцы
5.00
рейтинг книги
Император Пограничья 10

Тьма и Хаос

Владимиров Денис
6. Глэрд
Фантастика:
фэнтези
боевая фантастика
попаданцы
5.00
рейтинг книги
Тьма и Хаос

Идеальный мир для Лекаря 3

Сапфир Олег
3. Лекарь
Фантастика:
фэнтези
юмористическое фэнтези
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 3