Необязательный параметр 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 раз подряд.
Читать дальше