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

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

Жанры

Windows Script Host для Windows 2000/XP

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

Шрифт:

WshShell.SendKeys("1{+}2=");

//Вставляем содержимое буфера Windows (<Ctrl>+V)

WshShell.SendKeys("^v");

//Выводим в окно Блокнота оставшуюся информацию

WshShell.SendKeys(" {(}c{)} Calculator");

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

Тот же пример, реализованный в виде VBScript-сценария, приведен в листинге 2.31.

Листинг 2.31.
Запуск двух приложений и обмен данными между ними (VBScript)

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

' Имя: Run&ExecWinApp.vbs

' Язык: VBScript

' Описание: Запуск двух приложений и обмен данными между ними

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

Option Explicit

Dim WshShell, theCalculator ' Объявляем переменные

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

Set WshShell = WScript.CreateObject("WScript.Shell")

WScript.Echo("Запускаем калькулятор и" & vbCrLf & "считаем 1+2")

' Создаем объект WshScript (запускаем Калькулятор)

Set theCalculator = WshShell.Exec("calc")

' Приостанавливаем выполнение сценария, для того, чтобы

' окно Калькулятора успело появиться на экране

WScript.Sleep 500

' Активизируем окно Калькулятора

WshShell.AppActivate theCalculator.ProcessID

' Посылаем нажатия клавиш в окно Калькулятора

WshShell.SendKeys "1{+}"

WshShell.SendKeys "2"

WshShell.SendKeys "~" ' Клавиша <Enter>

WScript.Sleep 500

' Копируем результат вычисления в буфер Windows (<Ctrl>+C)

WshShell.SendKeys "^c"

' Выводим сообщение (активное окно меняется)

WScript.Echo "Закрываем калькулятор"

' Активизируем окно Калькулятора

WshShell.AppActivate theCalculator.ProcessID

' Закрываем окно Калькулятора (<Alt>+<F4>)

WshShell.SendKeys "%{F4}"

WScript.Echo "Запускаем Блокнот и копируем туда результат"

WshShell.Run "notepad" ' Запускаем Блокнот

' Приостанавливаем выполнение сценария, для того, чтобы

' окно Блокнота успело появиться на экране

WScript.Sleep 1000

WshShell.AppActivate "notepad" ' Активизируем окно Блокнота

'
Посылаем нажатия клавиш в окно Блокнота

WshShell.SendKeys "1{+}2="

' Вставляем содержимое буфера Windows (<Ctrl>+V)

WshShell.SendKeys "^v"

' Выводим в окно Блокнота оставшуюся информацию

WshShell.SendKeys " {(}c{)} Calculator"

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

Запуск независимых консольных приложений и команд DOS

Для запуска независимых, т.е. работающих в отдельном адресном пространстве и использующих свою копию переменных среды, консольных приложений или внешних (представленных исполняемыми файлами на жестком диске) команд DOS используется метод

Run
объекта
WshShell
. При этом выполнение сценария можно приостановить до окончания работы запущенного приложения, а затем проанализировать код выхода этого приложения (для этого третий параметр метода
Run
должен равняться
true
). Соответствующие примеры сценариев на языках JScript и VBScript приведены в листингах 2.32 и 2.33 соответственно.

Листинг 2.32. Запуск независимого консольного приложения (JScript)

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

/* Имя: RunConApp.js */

/* Язык: JScript */

/* Описание: Запуск независимого консольного приложения и */

/* определение его кода выхода */

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

var WshShell, Code; //Объявляем переменные

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

WshShell = WScript.CreateObject("WScript.Shell");

//Запускаем утилиту xcopy с ключом "/?" и ожидаем окончания ее работы

Code=WshShell.Run("xcopy /?",1,true);

//Печатаем полученный код возврата

WScript.Echo("Код возврата: ", Code);

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

Листинr 2.33. Запуск независимого консольного приложения (VBSсript)

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

' Имя: RunConApp.vbs

' Язык: VBScript

' Описание: Запуск независимого консольного приложения и

' определение его кода выхода

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

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

Миллионщик

Шимохин Дмитрий
3. Подкидыш
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Миллионщик

Орден Багровой бури. Книга 1

Ермоленков Алексей
1. Орден Багровой бури
Фантастика:
попаданцы
аниме
фэнтези
фантастика: прочее
5.00
рейтинг книги
Орден Багровой бури. Книга 1

Лекарь Империи 8

Лиманский Александр
8. Лекарь Империи
Фантастика:
попаданцы
городское фэнтези
аниме
5.00
рейтинг книги
Лекарь Империи 8

Огненный князь 3

Машуков Тимур
3. Багряный восход
Фантастика:
фэнтези
боевая фантастика
попаданцы
5.00
рейтинг книги
Огненный князь 3

Страж. Тетралогия

Пехов Алексей Юрьевич
Страж
Фантастика:
фэнтези
9.11
рейтинг книги
Страж. Тетралогия

Эволюционер из трущоб. Том 11

Панарин Антон
11. Эволюционер из трущоб
Фантастика:
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Эволюционер из трущоб. Том 11

Новик

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

Компас желаний

Кас Маркус
8. Артефактор
Фантастика:
городское фэнтези
аниме
фэнтези
5.00
рейтинг книги
Компас желаний

Личный аптекарь императора

Карелин Сергей Витальевич
1. Личный аптекарь императора
Фантастика:
городское фэнтези
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Личный аптекарь императора

Искатель 7

Шиленко Сергей
7. Валинор
Фантастика:
рпг
фэнтези
попаданцы
гаремник
5.00
рейтинг книги
Искатель 7

Сирийский рубеж

Дорин Михаил
5. Рубеж
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Сирийский рубеж

Император Пограничья 10

Астахов Евгений Евгеньевич
10. Император Пограничья
Фантастика:
городское фэнтези
аниме
фантастика: прочее
попаданцы
5.00
рейтинг книги
Император Пограничья 10

Тьма и Хаос

Владимиров Денис
6. Глэрд
Фантастика:
фэнтези
боевая фантастика
попаданцы
5.00
рейтинг книги
Тьма и Хаос

Идеальный мир для Лекаря 3

Сапфир Олег
3. Лекарь
Фантастика:
фэнтези
юмористическое фэнтези
аниме
5.00
рейтинг книги
Идеальный мир для Лекаря 3