Запуск зовнішніх додатків з скрипта vbscript, застосування об'єкта wshshell

Запуск зовнішніх додатків з скрипта 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 - в документації.