Академия Специальных Курсов по Компьютерным Технологиям
    Главная страница Послать письмо
 
AskIt.ru  
   
   
   
   
   
   
 
 
  Главная / Заказные курсы / Программирование для администраторов
 
 

Получить учебные материалы по этому курсу


<-- Назад Читать дальше -->

7. Работа с окнами и приложениями

Запуск внешних приложений из скрипта VBScript, применение объекта WshShell, методы Run(), AppActivate(), SendKeys()

7.1 Возможности объекта Wscript.Shell

Запуск приложения производится при помощи объекта WScript.Shell. Первая строка для работы с этим объектом выглядит как

Dim WshShell

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 позволяет передать фокус приложению. Ему передается заголовок окна приложения:

WshShell.Run "calc"

WScript.Sleep (200)

WshShell.AppActivate "Calculator"

WScript.Sleep (200)

Будьте внимательны - заголовок окна может быть разным! Поэтому лучше использовать централизованные копии своих приложений на сервере. Кроме того, желательно делать паузы после запуска приложения и передачи ему фокуса, чтобы операция успела выполниться

Далее используем метод SendKeys:

WshShell.SendKeys("1{+}");

   WScript.Sleep(500);

WshShell.SendKeys("2");

   WScript.Sleep(500);

WshShell.SendKeys("~");

 Подробное описание того, как передавать нажатия тех или иных клавиш методом SendKeys - в документации.

 

   
   
   
   
   
   
   
   
   
   
 
<-- Назад Читать дальше -->

Получить учебные материалы по этому курсу


 

 
© 2004-2016, Академия Специальных Курсов
по Информационным Технологиям
.
Все права защищены.

Разработка NevaStudio
г. Санкт-Петербург, Васильевский остров,
20-я линия, д. 7
Офис 101, 2-й этаж
Телефон: 8(812)922-47-60
E-mail: info@askit.ru