В следующем примере метод 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, должен предоставлять интерфейс к своим событиям.
В следующем примере в переменной 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);
Если соединения с объектом obj не было установлено, то метод DisconnectObject( obj )не будет производить никаких действий. Пример применения DisconnectObjectбыл приведен выше.
Параметры Arg1, Arg2 задают аргументы для вывода. Если сценарий был запущен с помощью wscript.exe, то метод Echoнаправляет вывод в диалоговое окно, если же для выполнения сценария применяется cscript.exe, то вывод будет направлен на экран (консоль). Каждый из аргументов при выводе будет разделен пробелом. В случае использования cscript.exe вывод всех аргументов будет завершен символом новой строки. Если в методе Echo не задан ни один аргумент, то будет напечатана пустая строка.
Например, после выполнения сценария EchoExample.js (листинг 1.3) с помощью cscript.exe на экран будут выведены пустая строка, три числа и строка текста (рис. 1.10).
Листинг 1.3. Сценарий EchoExample.js
/*******************************************************************/
/* Имя: 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).
В следующем примере сценарий переводится в неактивное состояние на 5 секунд:
WScript.Echo("Сценарий запущен, отдыхаем...");
WScript.Sleep(5000);
WScript.Echo("Выполнение завершено");
Метод Sleepнеобходимо применять при асинхронной работе сценария и какой-либо другой задачи, например, при имитации нажатий клавиш в активном окне с помощью метода WshShell.SendKeys(см. листинги 1.13, 2.31, 2.32).
В WSH входят объекты, с помощью которых можно получить доступ к коллекциям, содержащим следующие элементы:
□ параметры командной строки запущенного сценария или ярлыка Windows (объекты WshArguments, WshNamedи WshUnnamed);
□ значения переменных среды (объект WshEnvironment);
□ пути к специальным папкам Windows (объект WshSpecialFolders).
Объект WshArgumentsсодержит коллекцию всех параметров командной строки запущенного сценария или ярлыка Windows. Этот объект можно создать только спомощью свойства Argumentsобъектов WScriptи WshShortcut.
В принципе, работать с элементами коллекции WshArgumentsможно стандартным для JScript образом — создать объект Enumeratorи использовать его методы moveNext, itemи atEnd. Например, вывести на экран все параметры командной строки, с которыми запущен сценарий, можно следующим образом (листинг 1.4).
Читать дальше