Запуск зовнішніх додатків з скрипта VBScript, застосування об'єкта WshShell, методи Run (), AppActivate (), SendKeys ()
Запуск програми проводиться за допомогою об'єкта WScript. Shell. Перший рядок для роботи з цим об'єктом виглядає як
set WshShell = WScript.CreateObject ( "WScript.Shell")
Сам запуск проводиться за допомогою методу Run:
WshShell. Run "Імя_пріложенія"
Необов'язкові параметри: цифра (1-10) - вид діалогового вікна, true / false - призупиняти виконання скрипта поки не завершиться робота програми чи ні.
Зазвичай існує дві ситуації, коли нам потрібно запустити програми з скрипта:
1) запускаємо утиліти командного рядка (наприклад, з Resource Kit) і нам потрібно отримати те, що вони повертають
2) запускаємо графічне додаток і передаємо туди натискання клавіш
При запуску утиліти командного рядка звернути увагу на наступні моменти:
o якщо нам потрібно повертати код помилки. робимо це в такий спосіб:
sReturn = WshShell.Run ( "ping" "192.168.1.2", 1, TRUE)
обов'язково має стояти ключове слово TRUE. інакше повертається код завжди буде 0;
o якщо потрібно отримати висновок від утиліти, записуємо його за допомогою> в текстовий файл, потім відкриваємо на читання за допомогою FSO. викачуємо в змінну і видаляємо. В змінної можна шукати значення за допомогою функції inStr (запиту, не знайдено - 0, знайдено - значення, відмінне від 0).
o якщо використовуєте не виконуються файли, а команди інтерпретатора (DIR. CD. MD і т.п.), то команда на запуск повинна виглядати як
WshShell.Run ( "% COMSPEC% / K dir")
% COMSPEC% - щоб не з'ясовувати, який командний інтерпретатор працює, / K - щоб не закривалося вікно командного інтерпретатора.
o для того, щоб не залежати від наявності утиліт на комп'ютері користувача, є сенс викласти використовувані утиліти на сервер в мережі і звертатися до них по мережевому імені;
o для того, щоб запустити утиліту зі зміненим пріоритетом, можна використовувати команду інтерпретатора Start.
При запуску графічного додатку зазвичай є необхідність передати в нього натискання клавіш. Для цієї мети використовуються методи AppActivate (передача фокусу вікна додатка) і SendKeys (передати натискання клавіш)
Метод AppActivate дозволяє передати фокус з додатком. Йому передається заголовок вікна програми:
Будьте уважні - заголовок вікна може бути різним! Тому краще використовувати централізовані копії своїх додатків на сервері. Крім того, бажано робити паузи після запуску програми і передачі йому фокуса, щоб операція встигла виконатися
Далі використовуємо метод SendKeys.
WshShell. SendKeys ( "
Детальний опис того, як передавати натискання тих чи інших клавіш методом SendKeys - в документації.