Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

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


Выпуск #05

"Vbs, whs, js скрипты для администратора"

19 августа 2008

Уважаемый подписчик!

в этом выпуске будут рассмотрены оставшиеся свойства, а также методы объекта WScript.

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

Методы (вызываемые процедуры или функции) объекта WScript представлены ниже:

Метод
Описание
CreateObject (strProgID[, strPrefix])
Создает объект, заданный параметром strProgID. Если указан необязательный параметр strPrefix, то после создания объекта в сценарии можно обрабатывать события, возникающие в этом объекте (естественно, если объект предостовляет интерфейсы для связи с этими событиями). Когда объект сообщает о возникновении определенного события, сервер сценариев вызывает функцию, имя которой состоит из префикса strPrefix и имени этого события. Например, если в качестве strPrefix указано ''MYOBJ_OnBegin'', которая должна быть описана в сценарии.
ConnectObject( strObject,strPrefix) Устанавливает соединение с объектом strObject, позволяющее писать функции - обработчики его событий (имена функций должны начинаться с префикса strPrefix)
DisconnectObject (obj)
Отсоединяет объект obj, связь с которым была предварительно установлена в сценарии
Echo ([Arg1] [, Arg2] [, ...])
Выводит текстовую информацию на консоль или в виде диалогового окна (MsgBox)
GetObject(strPathName[,strProgID] [,strPrefix])) Активизирует объект автоматизации, определяемый заданным файлом (параметр strPathName) или объект, заданный параметром strProgID
Quit ([intErrorCode])
Прерывает выполнение сценария с заданным параметром intErrorCode кодом выхода. Если параметр intErrorCode не задан, то объект WScript установит код выхода равным нулю.
Sleep (intTime)

Приостанавливает выполнение сценария (переводит его в неактивное состояние) на заданное параметром intTime число миллисекунд.

Следует отметить, что данный метод доступен для WSH версии 2.0 (Windows 2000, XP, Vista)

 

1. Метод CreateObject с обработкой событий

В листинге 1 представлено запуск Microsoft Word с помощью скрипта и обработкой события выхода из MS Word. Вам нужно сделать:

  1. Скопировать содержимое листинга 1 в файл CreateObject.vbs и сохранить его.
  2. Выполнить файл CreateObject.vbs. При этом запустится Microsoft Word.
  3. Закрыть MS Word и увидеть, что обрабатывается событие закрытия приложения.

Листинг 1

'--------------------------------- Начало файла
' Имя: CreateObject.vbs
'Язык: VBScript
'Описание: Демонстрация работы CreateObject
'Создаем в памяти экземляр объекта MS Word, для обработки событий от этого приложения

'Используем префикс objWord
Set objWord = WScript.CreateObject("Word.Application","objWord_")

'Делаем приложение видимым
objWord.Visible = True

'Содаем переменную blnWordVisible, для обработки события
Dim blnWordVisible

'По умолчанию считаем MS Word видимым
blnWordVisible = True

'До тех пор пока приложение видимое исполняется конструкция while-wend
While blnWordVisible

'Интервал обработки 0,5 секунды
WScript.Sleep 500
Wend

'Обработка закрытия MS Word
Sub objWord_Quit

'Переменную blnWordVisible сбрасываем в False
blnWordVisible = Flase

'Выдаем сообщение
MsgBox "Word is quit!!!", 4096, "CreateObject.Prefix"
End Sub

'------------------------------------------------------ Окончание файла

2. Метод CreateObject без обработки событий

Что произойдёт, если запустить MS Word без обработки событий. В созданном в п. 1 файле CreateObject.vbs замените строку

Set objWord = WScript.CreateObject("Word.Application","objWord_")

на

Set objWord = WScript.CreateObject("Word.Application") и запустите скрипт. Когда откроется MS Word, то закройте его. Как видите MS Word закрылся без выдачи сообщения обработчика, которое было в прошлом случае. Для того, чтобы программно включать перехват обработчиков запускаемого нами приложения и отключать существует метод ConnectObject.

3. Методы ConnectObject

Метод ConnectObject позволяет программно подключать обработку событий приложений (в нашем случае закрытие MS Word), для отключения данного обработчика событий служит метод DisconnectObject. Выполните следующие действия:

  1. Скопируйте содержимое листинга 2 в файл ConnectObject.vbs и сохраните его.
  2. Выполнить файл ConnectObject.vbs. При этом запустится Microsoft Word.
  3. Закройте MS Word и увидете, что обрабатывается событие закрытия приложения.

Листинг 1

'--------------------------------- Начало файла
' Имя: ConnectObject.vbs
'Язык: VBScript
'Описание: Демонстрация работы ConnectObject
'Создаем в памяти экземляр объекта MS Word, для обработки событий от этого приложения

'Используем префикс objWord
Set objWord = WScript.CreateObject("Word.Application")

'Делаем приложение видимым
objWord.Visible = True

'Включаем обработку событий приложения MS Word

WScript.ConnectObject objWord,"MyWord_"

'Содаем переменную blnWordVisible, для обработки события
Dim blnWordVisible

'По умолчанию считаем MS Word видимым
blnWordVisible = True

'До тех пор пока приложение видимое исполняется конструкция while-wend
While blnWordVisible

'Интервал обработки 0,5 секунды
WScript.Sleep 500
Wend

WScript.DisconnectObject objWord

'Обработка закрытия MS Word
Sub MyWord_Quit

'Переменную blnWordVisible сбрасываем в False
blnWordVisible = Flase

'Выдаем сообщение
MsgBox "Word is quit!!!", 4096, "CreateObject.Prefix"
End Sub

'------------------------------------------------------ Окончание файла

Проведите следующий эксперимент:

после строки WScript.ConnectObject objWord,"MyWord_", вставьте WScript.DisconnectObject objWord и запустите скрипт ConnectObject.vbs. Сообщите какой результат получили.

3. Метод GetObject

Метод GetObject чем-то похож на CreateObject с единственной разницей, что можно напрямую задавать имя файла и путь по которому находится библиотека запуска файла. А в остальном метод GetObject похож на CreateObject.

4. Методы Echo, Sleep

В листинге 3 продемострирован метод Echo. Скопируйте и запустите.

Листинг 3

'--------------------------------- Начало файла
' Имя: Echo.vbs
'Язык: VBScript
'Описание: Использование метода WScript.Echo
WScript.Echo 'Выводим пустую строку
WScript.Echo 1,2,3,4,5,6," строка1 ",7,8," строка2 ",9,0 'Выводим числа и строки
WScript.Echo "Hello!" 'Выводим строку
'--------------------------------- Конец файла

В листинге 4 показан пример сценария, который переводится в неактивное состояние 8 секунд. Скопируйте и выполните скрипт:

'--------------------------------- Начало файла
' Имя: Sleep.vbs
'Язык: VBScript
'Описание: Использование метода WScript.Sleep
WScript.Echo "Сценарий запущен! Отдыхаем..." 'Выводим строку
WScript.Sleep 8000 'Задержка 8000 милисекунд или 8 секунд
WScript.Echo "Выполнение завершено!"
'--------------------------------- Конец файла

В этом выпуске закончено рассмотрение свойств и методов объекта WScript. В следующем выпуске рассылки рассмотрим объекты-коллекции:

  • параметры командной строки запущенного сценария или ярлыка;
  • значения переменных среды;
  • пути к специальным папкам Windows.

Со мной можносвязаться по e-mail - novopashinwm@mail.ru

Copyright 2008 Новопашин Владимир. Все права защищены.


В избранное