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

01.01.2001

Что в 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("~");

Вас заинтересует