Андрей Попов - 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).
Интервал:
Закладка: