Ел
Елена

Что в vbs значит WScript.Sleep 1 on error resume next set t=createobject("Wscript.Shell")

WScript.Sleep 1
on error resume next
set t=createobject("Wscript.Shell")

СМ
Сеймур Мисирханов

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("~");

Похожие вопросы
Скажите пожалуйста, что значит запустите игру с параметром: +set mоnkeуtоу 0 +set sv_сheаts 1, как это сделать?
Parse error: syntax error, unexpected T_ELSE in /home/u47601/сайт/check_login.php on line 81. 1.
syntax error, unexpected T_ELSE in Z:\home\1.ru\www\check.php on line 25
При загрузки игры на андройд появляется ошибка data download authorization error Is the time on your device set correct
Parse error: syntax error, unexpected T_CLASS in Z:\home\test точка ru\www\mvc\controller.php on line 3
t=15: t mod 7= t div 5 -1. Посчитать значения выражения (желательно с объяснением)!
parse error: synxax error, unexpected 'case' (T_CASE) in *** on line 930
Что значит 0!=1, 1!=1 в с++?
Parse error: syntax error, unexpected ';' in /home/u550788260/public_html/files/upload.php on line 15 ПОМОГИТЕ
Скачал GTA 3 и вылетает это data download authorization error is the time on your device set correctly