Андрей Попов - Windows Script Host для Windows 2000/XP
Таблица 1.13. Типы окна (intWindowStyle)
Параметр Константа Visual Basic Описание 0 vbHide Прячет текущее РѕРєРЅРѕ Рё активизирует РґСЂСѓРіРѕРµ РѕРєРЅРѕ (показывает его Рё передает ему фокус) 1 vbNormalFocus Активизирует Рё отображает РѕРєРЅРѕ. Если РѕРєРЅРѕ было минимизировано или максимизировано, система восстановит его первоначальное положение Рё размер. Ртот флаг должен указываться сценарием РІРѕ время первого отображения РѕРєРЅР° 2 vbMinimizedFocus Активизирует РѕРєРЅРѕ Рё отображает его РІ минимизированном (свернутом) РІРёРґРµ 3 vbMaximizedFocus Активизирует РѕРєРЅРѕ Рё отображает его РІ максимизированном (развернутом) РІРёРґРµ 4 vbNormalNoFocus Отображает РѕРєРЅРѕ РІ том РІРёРґРµ, РІ котором РѕРЅРѕ находилось последний раз. Активное РѕРєРЅРѕ РїСЂРё этом остается активным 5  Активизирует РѕРєРЅРѕ Рё отображает его РІ текущем состоянии 6 vbMinimizedNoFocus Минимизирует заданное РѕРєРЅРѕ Рё активизирует следующее (РІ Z-РїРѕСЂСЏРґРєРµ) РѕРєРЅРѕ 7  Отображает РѕРєРЅРѕ РІ свернутом РІРёРґРµ. Активное РѕРєРЅРѕ РїСЂРё этом остается активным 8  Отображает РѕРєРЅРѕ РІ его текущем состоянии. Активное РѕРєРЅРѕ РїСЂРё этом остается активным 9  Активизирует Рё отображает РѕРєРЅРѕ. Если РѕРєРЅРѕ было минимизировано или максимизировано, система восстановит его первоначальное положение Рё размер. Ртот флаг должен указываться, если производится восстановление свернутого РѕРєРЅР° (его нельзя использовать РІ методе Run) 10  Устанавливает режим отображения, опирающийся РЅР° режим программы, которая запускает приложениеЗамечаниеВ сценариях, написанных РЅР° языке VBScript, можно непосредственно использовать именованные константы типа vbHide без предварительного РёС… объявления. Для того чтобы использовать такие константы РІ JScript-сценариях, РёС… нужно предварительно объявить как переменные Рё присвоить нужные значения (например, var vbHide=0;). Естественно, РІ любых сценариях вместо имен констант можно использовать РёС… числовые значения.
Необязательный параметр 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
Каждая клавиша задается одним или несколькими символами. Например, для того чтобы задать нажатие друг за другом букв А, Б и В, нужно указать в качестве параметра для SendKeys строку "АБВ": string="AБB".
Несколько символов имеют в методе SendKeys специальное значение: +, ^, %, ~, (, ). Для того чтобы задать один из этих символов, их нужно заключить в фигурные скобки {}. Например, для задания знака плюс используется {+}. Квадратные скобки [] хотя и не имеют в методе SendKeys специального смысла, их также нужно заключать в фигурные скобки. Кроме этого, для задания самих фигурных скобок следует использовать следующие конструкции: {{} (левая скобка) и {}} (правая скобка).