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).
/************* Конец *********************************************/
Рис. 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).
Объекты-коллекции
В WSH входят объекты, с помощью которых можно получить доступ к коллекциям, содержащим следующие элементы:
параметры командной строки запущенного сценария или ярлыка Windows (объекты
WshArguments
,
WshNamed
и
WshUnnamed
);
значения переменных среды (объект
WshEnvironment
);
пути к специальным папкам Windows (объект
WshSpecialFolders
).
Объект WshArguments
Объект
WshArguments
содержит коллекцию всех параметров командной строки запущенного сценария или ярлыка Windows. Этот объект можно создать только с помощью свойства
Arguments
объектов
WScript
и
WshShortcut
.
В принципе, работать с элементами коллекции
WshArguments
можно стандартным для JScript образом — создать объект
Enumerator
и использовать его методы
moveNext
,
item
и
atEnd
. Например, вывести на экран все параметры командной строки, с которыми запущен сценарий, можно следующим образом (листинг 1.4).
Листинг 1.4. Вывод всех параметров сценария (стандартные коллекции JScript)