Объекты Windows Scripting Host

В работе WSH используются 9 объектов: WScript (не путать с WScript.exe), WshArguments, WshEnvironment, WshNetwork, WshShell, WshShortcut, WshSpecialFolders, WshUrlShortcut и FileSystemObject.

Объект WScript является главным объектом Windows Script Host. Он служит для создания объектов и выполняет служебные задачи связанные с ними, содержит сведения о сервере сценариев и о запущенных сценариях.

Объект WshArguments служит для работы с аргументами среды

WshEnvironment – работает переменными среды.

WshNetwork – используется при работе с сетевым окружением: содержит информацию для сети о данном компьютере, позволяет подключать сетевые принтеры и диски.

WshShell – служит для работы с переменными среды Windows, запускает другие программы, работает с реестром и т.д.

WshShortcut – создает ярлыки.

WshSpecialFolders – используется для доступа к специальным папкам Windows, таким как меню Пуск, Рабочий стол, Мои документы и т.д.

WshUrlShortcut – еще один объект для создания ссылок, но обладающий более ограниченными возможностями, чем WshShortcut.

Особняком стоит FileSystemObject объект. Как таковой он не является объектом WSH и дочерним объектом WScript, но занимает важное место в создании сценариев используясь для работы с файлами.

Объект TextStream используется для работы с содержанием текстовых файлов.

 

Из всех вышеперечисленных объектов можно выделить 4 главных:WScript, WshShell, WshNetwork и FileSystemObject. Остальные же являются их объектами, созданными для удобства, дублируя некоторые их возможности.

Перед использованием всех объектов (кроме WScript) нужно создать их экземпляр. Для этого используется метод CreateObject, объекта WScript.

Например, объект WshShell создается следующим образом:

Set WshShell = CreateObject(“WScript.Shell”)

Свойства объекта WScript

Объект WScipt содержит информацию о сервере сценариев и о самих, исполняемых файлах сценариев.

Name – выводит надпись: “Сервер сценариев”

Пример

WScript.Echo WScript.Name

FullName – возвращает используемый сервер сценириев (CScript.exe или WScript.exe) и полный путь к нему.

Результат будет типа:

C:\WINDOWS\WSCRIPT.EXE

Path – возвращает путь к папке с файлами сервера сценариев (CScript.exe и WScript.exe).

Если Windows находится в папке Windows, то результат будет:

C:\WINDOWS

Version – показывает версию установленного сервера сценариев. Обратите внимание, что свойство Version возвращает не версию языка Windows Script Host, а версию его интерпретатора.

Например

WScript.Echo WScript.Version

Выдаст результат: (5.0 или, 5.1), где 5.0 соответствует версии Windows Scriptinh Host 1.0, а 5.1. версии 2.0.

ScriptName – выдает имя исполняемого файла сценария.

Timeout

Свойство Timeout устанавливает время, по истечении которого сценарий завершает свою работу.

Пример

WScript.Timeout = 5

WScript.Echo "Сценарий завершит работу через 5 секунд"

 

SrdErr, StdIn, StdOut - методы, предназначенные для ввода-вывода информации в режиме командной строки (CScript.exe).

Interactive

Свойство Interactive показывает, используется ли диалоговый режим (WScript.exe), возвращая логический результат. А также может устанавливать или отключать диалоговый режим. При значении false - интерактивный режим отключается, т.е. диалоговые окна не могут использоваться.

Синтаксис:

WScript.Interactive[ = True|False]

 

Методы объекта WScript

CreateObject – создает экземпляр объекта ActiveX.

Синтаксис:

object.CreateObject(strProgID[,strPrefix])

где

object – объект WScript.

StrProgID – класс к которому принадлежит объект.

Например, создадим объект WshShell

Set WshShell = WScript.CreateObject(“WScript.Shell”)

ConnectObject – позволяет подключить исполняемый сценарий к существующему объекту, его событиям.

DisconnectObject – отключается от объекта, с которым был соединен сценарий методом ConnectObject.

GetObject – получает объект, который уже создан и находится в другом файле.

Echo – выводит диалоговое окно с сообщением пользователю. При использовании CScript.exe выводит строку с текстом.

Sleep – переводит сценарий в неактивное состояние, на заданное время (в миллисекундах), после чего продолжает его работу.

Quit – завершает работу сценария. Необязателен.

 

Windows Scripting Host имеет два вида диалоговых окон: простое (метод Echo) и управляющее (метод Popup)

Echo

Метод Echo объекта WScript отображает сообщение в диалоговом окне, если используется WScript.exe, или выводит строку с текстом, если используется CScript.exe, по своим возможностям дублируя команду echo bat-файлов.

Синтаксис следующий:

object.Echo [[Arg1] [,Arg2] [,Arg3] ... ]

где

object - объект WScript.

Arg1, Arg2, Arg3 ... – данные, которые должны быть выведены на экран

Для перевода строки используется константа vbCrLf.

Например

Wscript.Echo "Это", vbCrLf, "пример"

Wscript.Echo "Это"& vbCrLf& "пример"

 

Popup

Управляющее окно Popup имеет те же возможности вывода информации, что и окно созданное с помощью метода Echo, но вдобавок ко всему обладает дополнительными возможностями, расширяющими его возможности и сферу его применения. Метод Popup, является методом объекта WshShell, и для его использования должен быть создан объект WshShell.

Синтаксис:

intButton = object.Popup(strText,[WaitSec],[strTitle],[natType])

где

object - объект WshShell

strText - само сообщение в данном окне

WaitSec - время (в секундах), по истечении которого окно закроется

strTitle - заголовок окна. Если отсутствует, то заголовок окна будет по умолчанию "Сервер сценариев".

natType - параметр определяющий картинку и кнопку в данном окне.

 

Значение Кнопки
OK
OK и Отмена(Cancel)
Стоп(Abort), Повтор(Retry), и Пропустить(Ignore)
Да(Yes),Нет(No), и Отмена(Cancel)
Да(Yes) и Нет(No)
Повтор(Retry) и Отмена(Cancel)

 

Параметры определяющие рисунок:

 

Значение Рисунок
Важное сообщение
Вопрос
Предупреждение
Информация

При закрытии окно popup возвращает значение intButton – которое содержит информацию о том, какая кнопка была нажата.

Значения выбранных кнопок:

Значения Нажатая кнопка
OK
Отмена (Cancel)
Стоп (Abort)
Повтор (Retry)
Пропустить (Ignore)
Да (Yes)
Нет (No)

 

Интересной особенностью окна popup является его возможность закрываться по истечении заданного времени.

Dim Interval, WshShell

'устанавливаем время через которое окно закроется:

Interval = 5

'создаем объект WshShell для метода Popup:

Set WshShell = CreateObject("WScript.Shell")

WshShell.Popup "Это окно закроется через 5 секунд",Interval,_

"Окно Popup", 48

В сценариях VBScript, кроме использования диалоговых окон Windows Script Host может использовать свои собственные диалоговые окна: MsgBox (окно вывода информации) и InputBox (окно ввода информации). Параметры, используемые в данных функциях, аналогичны применыемым в языке VBA.