Необязательный параметр 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).
Листинг 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строку " АБВ": string="AБB".
Несколько символов имеют в методе SendKeys специальное значение: +, ^, %, ~, (, ). Для того чтобы задать один из этих символов, их нужно заключить в фигурные скобки {}. Например, для задания знака плюс используется {+}. Квадратные скобки []хотя и не имеют в методе SendKeys специального смысла, их также нужно заключать в фигурные скобки. Кроме этого, для задания самих фигурных скобок следует использовать следующие конструкции: {{}(левая скобка) и {}}(правая скобка).
Для задания неотображаемых символов, таких как или и специальных клавиш, в методе SendKeysиспользуются коды, представленные в табл. 1.14.
Таблица 1.14.Коды специальных клавиш для SendKeys
| Названия клавиш |
Код |
Названия клавиш |
Код |
|
{BACKSPACE}, {BS}или {BKSP} |
<���→> |
{RIGHT} |
|
{BREAK} |
|
{F1} |
|
{CAPSLOCK} |
|
{F2} |
| или |
{DELETE}или {DEL} |
|
{F3} |
|
{END} |
|
{F4} |
|
{ENTER}ИЛИ ~ |
|
{F5} |
|
{ESC} |
|
{F6} |
|
{HELP} |
|
{F7} |
| или |
{INSERT}или {INS} |
|
{F8} |
|
{NUMLOCK} |
|
{F9} |
|
{PGDN} |
|
{F10} |
|
{PGUP} |
|
{F11} |
|
{PRTSC} |
|
{F12} |
|
{SCROLLLOCK} |
|
{F13} |
|
{TAB} |
|
{F14} |
| <���↑> |
{UP} |
|
{F15} |
| <���←> |
{LEFT} |
|
{F16} |
| <���↓> |
{DOWN} |
|
|
Для задания комбинаций клавиш с , или , перед соответствующей клавишей нужно поставить один или несколько кодов из табл. 1.15.
Таблица 1.15.Коды клавиш , и
Для того чтобы задать комбинацию клавиш, которую нужно набирать, удерживая нажатыми клавиши , <���Сtrl> или , нужно заключить коды этих клавиш в скобки. Например, если требуется сымитировать нажатие клавиш и при нажатой клавише , следует использовать последовательность " +(GS)". Для того же, чтобы задать одновременное нажатие клавиш +, а затем (уже без ), используется " +GS".
В методе SendKeys можно задать несколько нажатий подряд одной и той же клавиши. Для этого необходимо в фигурных скобках указать код нужной клавиши, а через пробел — число нажатий. Например, {LEFT 42}означает нажатие клавиши <���←> 42 раза подряд; {h 10}означает нажатие клавиши 10 раз подряд.
Читать дальше