Андрей Попов - 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 - читать онлайн бесплатно полную версию (весь текст целиком)
Интервал:
Закладка:
cscript //Nologo example.js | sort > sort.txt
Опция //Nologo здесь нужна для того, чтобы в файл sort.txt не попадали строки с информацией о разработчике и номере версии WSH.
Кроме этого, с помощью методов, работающих с входным потоком StdIn, можно организовывать диалог с пользователем, т. е. создавать интерактивные сценарии. Пример такого сценария представлен в листинге 1.2.
/*******************************************************************/
/* Имя: Interact.js */
/* Язык: JScript */
/* Описание: Ввод/вывод строк в консольном режиме */
/*******************************************************************/
var s;
//Выводим строку на экран
WScript.StdOut.Write("Введите число: ");
//Считываем строку
s = WScript.StdIn.ReadLine();
//Выводим строку на экран
WScript.StdOut.WriteLine("Вы ввели число " + s);
/************* Конец *********************************************/
Объект WScriptимеет несколько методов, которые описаны в табл. 1.4.
Таблица 1.4.Методы объекта WScript
| Метод | Описание |
|---|---|
CreateObject( strProgID [, strPrefix] ) |
Создает объект, заданный параметром strProgID |
ConnectObject( strObject, strPrefix ) |
Устанавливает соединение с объектом strObject , позволяющее писать функции-обработчики его событий (имена этих функций должны начинаться с префикса strPrefix ) |
DisconnectObject( obj ) |
Отсоединяет объект obj , связь с которым была предварительно установлена в сценарии |
Echo( [Arg1] [, Arg2] [,…] ) |
Выводит текстовую информацию на консоль или в диалоговое окно |
GetObject( strPathname [, strProgID], [strPrefix] ) |
Активизирует объект автоматизации, определяемый заданным файлом (параметр strPathName ), или объект, заданный параметром strProgID |
Quit( [intErrorCode] ) |
Прерывает выполнение сценария с заданным параметром intErrorCode кодом выхода. Если параметр intErrorCode не задан, то объект WScriptустановит код выхода равным нулю |
Sleep( intTime ) |
Приостанавливает выполнения сценария (переводит его в неактивное состояние) на заданное параметром intTime число миллисекунд |
Приведем дополнительные пояснения и примеры использования для методов, приведенных в табл. 1.4.
Метод CreateObject
Строковый параметр strProgID , указываемый в методе CreateObject ,называется программным идентификатором объекта (Programmic Identifier, ProgID).
Если указан необязательный параметр strPrefix , то после создания объекта в сценарии можно обрабатывать события, возникающие в этом объекте (естественно, если объект предоставляет интерфейсы для связи с этими событиями). Когда объект сообщает о возникновении определенного события, сервер сценариев вызывает функцию, имя которой состоит из префикса strPrefix и имени этого события. Например, если в качестве strPrefix указано " MYOBJ_", а объект сообщает о возникновении события " OnBegin", то будет запущена функция " MYOBJ_OnBegin", которая должна быть описана в сценарии.
В следующем примере метод CreateObjectиспользуется для создания объекта WshNetwork:
var WshNetwork = WScript.Createobject("WScript.Network");
Отметим, что объекты автоматизации из сценариев можно создавать и без помощи WSH. В JScript для этого используется объект ActiveXObject, например:
var WshNetwork = new ActiveXObject("WScript.Network");
В VBscript для создания объектов может использоваться специальная функция CreateObject, например:
Set WshNetwork = CreateObject("WScript.Network")
Однако организовать в сценарии обработку событий создаваемого объекта можно только при использовании метода WScript.CreateObject.
Метод ConnectObject
Объект, соединение с которым осуществляется с помощью метода ConnectObject, должен предоставлять интерфейс к своим событиям.
В следующем примере в переменной MyObjectсоздается абстрактный объект " SomeObject", затем из сценария вызывается метод SomeMetodэтого объекта. После этого устанавливается связь с переменной MyObjectи задается префикс " MyEvent" для процедур обработки события этого объекта. Если в объекте возникнет событие с именем " Event", то будет вызвана функция MyEvent_Event. Метод DisconnectObjectобъекта WScriptпроизводит отсоединение объекта MyObject.
var MyObject = WScript.CreateObject("SomeObject");
MyObject.SomeMethod();
WScript.ConnectObject(MyObject, "MyEvent");
function MyEvent_Event(strName) {
WScript.Echo(strName);
}
WScript.DisconnectObject(MyObject);
Метод DisconnectObject
Если соединения с объектом obj не было установлено, то метод DisconnectObject( obj )не будет производить никаких действий. Пример применения DisconnectObjectбыл приведен выше.
Метод Echo
Параметры Arg1, Arg2 задают аргументы для вывода. Если сценарий был запущен с помощью wscript.exe, то метод Echoнаправляет вывод в диалоговое окно, если же для выполнения сценария применяется cscript.exe, то вывод будет направлен на экран (консоль). Каждый из аргументов при выводе будет разделен пробелом. В случае использования cscript.exe вывод всех аргументов будет завершен символом новой строки. Если в методе Echo не задан ни один аргумент, то будет напечатана пустая строка.
Например, после выполнения сценария EchoExample.js (листинг 1.3) с помощью cscript.exe на экран будут выведены пустая строка, три числа и строка текста (рис. 1.10).
/*******************************************************************/
/* Имя: EchoExample.js */
/* Язык: JScript */
/* Описание: Использование метода WScript.Echo */
/*******************************************************************/
WScript.Echo(); //Выводим пустую строку
WScript.Echo(1,2,3); //Выводим числа
WScript.Echo("Привет!"); //Выводим строку
/************* Конец *********************************************/
Рис. 1.10.Вывод информации с помощью метода Echo
Другие примеры использования метода Echoприведены в главе 2 (см. листинги 2.1, 2.2, 2.4 и 2.5).
Метод Sleep
В следующем примере сценарий переводится в неактивное состояние на 5 секунд:
WScript.Echo("Сценарий запущен, отдыхаем...");
WScript.Sleep(5000);
WScript.Echo("Выполнение завершено");
Метод Sleepнеобходимо применять при асинхронной работе сценария и какой-либо другой задачи, например, при имитации нажатий клавиш в активном окне с помощью метода WshShell.SendKeys(см. листинги 1.13, 2.31, 2.32).
Интервал:
Закладка: