Необязательный параметр bWaitOnReturn является логической переменной, дающей указание ожидать завершения запущенного процесса. Если этот параметр не указан или установлен в false, то после запуска из сценария нового процесса управление сразу же возвращается обратно в сценарий (не дожидаясь завершения запущенного процесса). Если же bWaitOnReturn установлен в true, то сценарий возобновит работу только после завершения вызванного процесса.
При этом если параметр bWaitOnReturn равен true, то метод Run возвращает код выхода вызванного приложения. Если же bWaitOnReturn равен false или не задан, то метод Run всегда возвращает ноль.
В следующем примере мы запускаем Блокнот (notepad.exe) и открываем в нем файл с выполняемым сценарием:
var WshShell = WScript.CreateObject("WScript.Shell");
WshShell.Run("%windir%\\notepad" + WScript.ScriptFullName);
Следующий сценарий печатает код выхода вызванного приложения (листинг 1.18).
/********************************************************************/
/* Имя: RetCode.js */
/* Язык: JScript */
/* Описание: Вывод кода выхода запущенного приложения */
/********************************************************************/
//Создаем объект WshShell
var WshShell = WScript.CreateObject("WScript.Shell");
//Запускаем Блокнот и ожидаем завершения его работы
Return = WshShell.Run("notepad " + WScript.ScriptFullName, 1, true);
//Печатаем код возврата
WScript.Echo("Код возврата:", Return);
/************* Конец ***********************************************/
Другие примеры запуска приложений с помощью метода Run приведены в главе 2 (см. листинги 2.31 и 2.32).
Метод SendKeys
Каждая клавиша задается одним или несколькими символами. Например, для того чтобы задать нажатие друг за другом букв А, Б и В, нужно указать в качестве параметра для SendKeys строку "АБВ": string="AБB".
Несколько символов имеют в методе SendKeys специальное значение: +, ^, %, ~, (, ). Для того чтобы задать один из этих символов, их нужно заключить в фигурные скобки {}. Например, для задания знака плюс используется {+}. Квадратные скобки [] хотя и не имеют в методе SendKeys специального смысла, их также нужно заключать в фигурные скобки. Кроме этого, для задания самих фигурных скобок следует использовать следующие конструкции: {{} (левая скобка) и {}} (правая скобка).
Для задания неотображаемых символов, таких как <Enter> или <Tab> и специальных клавиш, в методе SendKeys используются коды, представленные в табл. 1.14.
Таблица 1.14. Коды специальных клавиш для SendKeys
| Названия клавиш | Код | Названия клавиш | Код |
|---|---|---|---|
| <Backspace> | {BACKSPACE}, {BS} или {BKSP} |
<→> | {RIGHT} |
| <Break> | {BREAK} |
<F1> | {F1} |
| <Caps Lock> | {CAPSLOCK} |
<F2> | {F2} |
| <Del> или <Delete> | {DELETE} или {DEL} |
<F3> | {F3} |
| <End> | {END} |
<F4> | {F4} |
| <Enter> | {ENTER} ИЛИ ~ |
<F5> | {F5} |
| <Esc> | {ESC} |
<F6> | {F6} |
| <Home> | {HELP} |
<F7> | {F7} |
| <Ins> или <Insert> | {INSERT} или {INS} |
<F8> | {F8} |
| <Num Lock> | {NUMLOCK} |
<F9> | {F9} |
| <Page Down> | {PGDN} |
<F10> | {F10} |
| <Page Up> | {PGUP} |
<F11> | {F11} |
| <Print Screen> | {PRTSC} |
<F12> | {F12} |
| <Scroll Lock> | {SCROLLLOCK} |
<F13> | {F13} |
| <Tab> | {TAB} |
<F14> | {F14} |
| <↑> | {UP} |
<F15> | {F15} |
| <←> | {LEFT} |
<F16> | {F16} |
| <↓> | {DOWN} |