Чтение онлайн

на главную - закладки

Жанры

Windows Script Host для Windows 2000/XP

Попов Андрей Викторович

Шрифт:

//Создаем сценарий на удаленной машине (объект WshRemote)

RemScript = Controller.CreateScript("D:\\RemoteScript.js", "stand");

RemScript.Execute; //Запускаем удаленный сценарий

WScript.Echo("Удаленный сценарий запущен");

while (RemScript.Status != 2)

 //Цикл выполняется до завершения удаленного сценария

 WScript.Sleep(100); //Приостанавливаем сценарий на 0,1 сек

WScript.Echo("Выполнение удаленного сценария завершено");

/************* Конец *********************************************/

В листинге 2.54 приведен аналог сценария RunRemoteScript.js на языке VBScript.

Листинг 2.54. Запуск удаленного сценария (VBScript)

'********************************************************************

' Имя: RunRemoteScript.vbs

' Язык: VBScript

' Описание: Запуск удаленного сценария

'********************************************************************

Option Explicit

Dim Controller, RemScript ' Объявляем переменные

' Создаем объект WshController

Set Controller = WScript.CreateObject("WshController")

' Создаем сценарий на удаленной машине (объект WshRemote)

Set RemScript = Controller.CreateScript("D:\\RemoteScript.js", "stand")

RemScript.Execute ' Запускаем удаленный сценарий

WScript.Echo "Удаленный сценарий запущен"

While RemScript.Status <> 2

 ' Цикл выполняется до завершения удаленного сценария

 WScript.Sleep 100 ' Приостанавливаем сценарий на 0,1 сек

Wend

WScript.Echo "Выполнение удаленного сценария завершено"

'************* Конец *********************************************

Контролировать ход выполнения удаленных сценариев можно не только путем анализа свойства

Status
, но и с помощью обработки событий
Start
(запуск сценария),
Error
(ошибка при выполнении сценария) и
End
(завершение работы сценария) объекта WshRemote; соответствующие примеры сценариев на языках JScript и VBScript приведены в листингах 2.55 и 2.56.

Напомним, что для обработки событий объекта нужно в сценарии сначала создать экземпляр этого объекта, а затем соединиться с ним при помощи метода

ConnectObject
, указав нужный префикс для функций-обработчиков:

Controller = WScript.CreateObject("WshController");

RemScript = Controller.CreateScript("D:\\RemoteScript.js ", "stand");

WScript.ConnectObject(RemScript, "RemoteScript_");

Затем в тексте сценария описываются функции

RemoteScript_Start
,
RemoteScript_Error
и
RemoteScript_End
, управление в которые будет передаваться при наступлении соответствующих событий.

Листинг 2.55. Обработка событий объекта
WshRemote
(JScript)

/**********************************************************************/

/* Имя: RemoteEvents.js */

/* Язык: JScript */

/* Описание: Обработка событий, возникающих при выполнении удаленного */

/* сценария */

/**********************************************************************/

var Controller,RemScript,IsQuit; //Объявляем переменные

//Создаем объект WshController

Controller = WScript.CreateObject("WshController");

//Создаем сценарий на удаленной машине (объект WshRemote)

RemScript = Controller.CreateScript("D:\\RemoteScript.js ", "stand");

//Устанавливаем соединение с объектом WshRemote

WScript.ConnectObject(RemScript, "RemoteScript_");

RemScript.Execute; //Запускаем удаленный сценарий

IsQuit = false;

while (!IsQuit) WScript.Sleep(100); //Приостанавливаем сценарий на 0,1 сек

WScript.Quit; //Выходим из сценария

/*************** Функции-обработчики событий ***********************/

function RemoteScript_End { //Событие End

 WScript.Echo("Выполнение удаленного сценария завершено");

 IsQuit = true;

}

function RemoteScript_Error { //Событие Error

 //Выводим на экран описание возникшей ошибки

 WScript.Echo("Ошибка при выполнении удаленного сценария: " +

RemScript.Error.Description);

 IsQuit = true;

}

function RemoteScript_Start { //Событие Start

 WScript.Echo("Удаленный сценарий запущен");

}

/************* Конец *********************************************/

Поделиться:
Популярные книги

Вперед в прошлое 2

Ратманов Денис
2. Вперед в прошлое
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Вперед в прошлое 2

Демон-хранитель

TsissiBlack
Фантастика:
фэнтези
мистика
5.20
рейтинг книги
Демон-хранитель

Наномашины, демоненок! Том 3

Новиков Николай Васильевич
3. Чего смотришь? Иди книгу читай
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Наномашины, демоненок! Том 3

На границе империй. Том 7. Часть 5

INDIGO
11. Фортуна дама переменчивая
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
5.00
рейтинг книги
На границе империй. Том 7. Часть 5

Страж Тысячемирья

Земляной Андрей Борисович
5. Страж
Фантастика:
боевая фантастика
альтернативная история
фэнтези
5.00
рейтинг книги
Страж Тысячемирья

Последний Паладин. Том 6

Саваровский Роман
6. Путь Паладина
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Последний Паладин. Том 6

Ученик

Листратов Валерий
2. Ушедший Род
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Ученик

Последний Герой. Том 2

Дамиров Рафаэль
2. Последний герой
Фантастика:
попаданцы
альтернативная история
4.50
рейтинг книги
Последний Герой. Том 2

Черный маг императора

Герда Александр
1. Черный маг императора
Фантастика:
юмористическая фантастика
попаданцы
аниме
5.00
рейтинг книги
Черный маг императора

Сотник

Ланцов Михаил Алексеевич
4. Помещик
Фантастика:
альтернативная история
5.00
рейтинг книги
Сотник

Жизнь, которой не было

Денис Палимов
1. Жизнь, которой не было
Фантастика:
городское фэнтези
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Жизнь, которой не было

Цикл "Отмороженный". Компиляция. Книги 1-14

Гарцевич Евгений Александрович
Отмороженный
Фантастика:
боевая фантастика
рпг
постапокалипсис
5.00
рейтинг книги
Цикл Отмороженный. Компиляция. Книги 1-14

Викинг

Мазин Александр Владимирович
1. Викинг
Приключения:
исторические приключения
8.92
рейтинг книги
Викинг

Хозяин Теней 3

Петров Максим Николаевич
3. Безбожник
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Хозяин Теней 3