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

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

Жанры

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

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

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

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

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

Моров. Том 4

Кощеев Владимир
3. Моров
Фантастика:
фэнтези
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Моров. Том 4

Хозяин Стужи

Петров Максим Николаевич
1. Злой Лед
Фантастика:
аниме
фэнтези
попаданцы
7.00
рейтинг книги
Хозяин Стужи

Гримуар темного лорда IV

Грехов Тимофей
4. Гримуар темного лорда
Фантастика:
фэнтези
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Гримуар темного лорда IV

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

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

Искушение генерала драконов

Лунёва Мария
2. Генералы драконов
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Искушение генерала драконов

Казань

Вязовский Алексей
2. Русский бунт
Фантастика:
альтернативная история
4.50
рейтинг книги
Казань

Наследник, скрывающий свой Род

Тарс Элиан
2. Десять Принцев Российской Империи
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Наследник, скрывающий свой Род

Золотой ворон

Сакавич Нора
5. Все ради игры
Фантастика:
зарубежная фантастика
5.00
рейтинг книги
Золотой ворон

Революция

Валериев Игорь
9. Ермак
Фантастика:
боевая фантастика
попаданцы
альтернативная история
5.00
рейтинг книги
Революция

Воин

Бубела Олег Николаевич
2. Совсем не герой
Фантастика:
фэнтези
попаданцы
9.25
рейтинг книги
Воин

Изыскатель

Назимов Константин Геннадьевич
5. Травник
Фантастика:
фэнтези
7.00
рейтинг книги
Изыскатель

Черный Маг Императора 23

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

Третий. Том 4

INDIGO
Вселенная EVE Online
Фантастика:
боевая фантастика
космическая фантастика
попаданцы
5.00
рейтинг книги
Третий. Том 4

Газлайтер. Том 8

Володин Григорий
8. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 8