vbs скрипты запуск программы
7. Работа с окнами и приложениями
Запуск внешних приложений из скрипта VBScript, применение объекта WshShell, методы Run(), AppActivate(), SendKeys()
7.1 Возможности объекта Wscript.Shell
set WshShell = WScript.CreateObject(«WScript.Shell»)
Сам запуск производится при помощи метода Run :
WshShell . Run «Имя_приложения»
Обычно существует две ситуации, когда нам нужно запустить приложения из скрипта:
1) запускаем утилиты командной строки (например, из Resource Kit ) и нам нужно получить то, что они возвращают
2) запускаем графическое приложение и передаем туда нажатия клавиш
При запуске утилиты командной строки обратить внимание на следующие моменты:
o если нам нужно возвращать код ошибки, делаем это следующим образом:
sReturn = WshShell.Run(«ping » & «192.168.1.2», 1, TRUE)
WshShell.Run(«%COMSPEC% /K dir»)
o для того, чтобы не зависеть от наличия утилит на компьютере пользователя, есть смысл выложить используемые утилиты на сервер в сети и обращаться к ним по сетевому имени;
При запуске графического приложения обычно есть необходимость передать в него нажатия клавиш. Для этой цели используются методы AppActivate (передача фокуса окну приложения) и SendKeys (передать нажатия клавиш)
Метод AppActivate позволяет передать фокус приложению. Ему передается заголовок окна приложения:
Далее используем метод SendKeys :
Vbs скрипты запуск программы
Выпуск #01
«Vbs, whs, js скрипты для администратора»
22 июля 2008
Как можно запустить скрипт?
Расмотрим процесс запуска самого простого скрипта (сценария). Для этого нужно на рабочем диске выделить место для хранения скриптов, пусть это будет диск c: и папка Script. Выполняются скрипты с помощью серверов сценариев, которые переводят команды текста в исполняемый код.
Интерпретаторы в Windows представлены двумя файлами: wscript.exe и cscript.exe. Оба позволяют работать с VBScript и JScript и применять все возможности административных скриптов. Отличия:
Отличия можно увидеть наглядно на примерах выполнения команды. Создадим самый простой скрипт.
Создаем файл vbs.
Вызовите проводник (чтобы открыть проводник, нажмите кнопку Пуск и выберите команды Программы, Стандартные и Проводник ), зайдите в пункт меню «Сервис\Свойства папки» и убедитесь, что у вас отключена галочка.
Выбираем диск c:, каталог Script и вставляем текстовый файл и переименувываем его в hello.vbs.
В сам файл внесем текст:
Данный скрипт выводит сообщение Hello!.
Рассмотрим варианты запуска этого скрипта.
1. Запуск скрипта с командной строки с помощью утилиты CScript.exe
Для запуска нашего скрипта с командной строки нужно вызвать консоль командной строки. В операционной системе выполните «Пуск\Выполнить. » и наберите cmd.exe. У вас вызовется консоль командной строки.
В консоле командной строки выполните команду CScript.exe c:\script\hello.vbs
Как видно из рисунка, наше сообщение вывелось в консоле.
В приложении 1 дан список ключей, для выполнения csript.exe. Допустим нам не хочется, чтобы выводился в командную строку логотип сервера сценариев, для этого надо запустить сценарий с командной CScript.exe c:\script\hello.vbs //Nologo.
2. Запуск скрипта с командной строки с помощью утилиты WScript.exe
Воспользуемся консолью, которую мы запустили для вызова скрипта с помощью утилиты CScript.exe. Вызовем скрипт с помощью утилиты WScript.exe набрав в окне консоли команду WScript.exe c:\Script\hello.vbs. Сообщение скрипта вывелось в виде всплывающего окошка.
3. Запуск скрипта используя команду»Пуск\Выполнить. «
при помощи утилиты WScript.exe
В операционной системе нажав «Пуск» и затем «Выполнить» выполним скрипт набрав ту же команду, что и в предыдущем примере: WScript.exe c:\Script\hello.vbs. Появится такое же окошко, что и в предыдущем примере.
4. Запуск скрипта с помощью файлового менеджера.
Выполнить скрипт можно с помощью любого файлового менеджера. Запустим Explover, выбирем диск c:, зайдем в папку Script и выполним файл hello.vbs нажав на нем двойной щелчок.
Приложения
Приложение 1
Запуск скриптов с помощью сервера скриптов для командной строки csript.exe
Для выполнения сценариев с помощью сервера сценариев для командной строки предусмотрен следующий синтаксис:
cscript [имя_сценария] [параметры_сервера] [аргументы_сценария]
Все параметры являются необязательными, однако нельзя задать аргументы сценария, не задав сценарий. При отсутствии аргументов сценария или самого сценария программа Cscript.exe выведет описание синтаксиса команды и предусмотренные ключи.
Ключи сервера сценариев для командной строки (см. таблицу).
Copyright 2008 Новопашин Владимир. Все права защищены.
Полезные VBS скрипты и программы по работе с ними
В этой теме выкладываем скрипты, которые часто используются Вами
или на Ваш взгляд могут иметь большое практическое значение.
Также приветствуются скрипты высокой степени сложности, полезные с точки зрения
изучения принципа их работы.
******************* Перечень полезных скриптов: *******************
Отправка файла на FTP (Drag & Drop) и копирование ссылки в буфер обмена ссылка
Получение времени сервера ссылка
Полезные PowerShell скрипты
Здесь публикуются полезные с практической точки зрения сценарии PowerShell или те, что могут.
Полезные BAT/CMD скрипты
В этой теме выкладываем скрипты, которые часто используются Вами или на Ваш взгляд могут иметь.
VBS, метод POST, заполнение полей и иже с ними
С помощью скрипта лезу на сайт. Далее нужно заполнить поля формы. Тут ступор — как обращаться к.
1) Внести в код имя своего FTP-сервера, имя пользователя и пароль, корневую директорию.
1) Сохранить код в файл «FTP and ClipBoard.VBS»
2) Перетащить на него любой файл.
Получаем отправку на FTP и в буфере обмена уже готовую ссылочку.
Есть баг: русские имена файлов отправляются нормально, но ссылку получаем нерабочую.
Пока не знаю как исправить. Если есть идеи, прошу в тему.
Вложения
FTP and ClipBoard.zip (1.3 Кб, 539 просмотров) |
VRENN.vbs: Переименование файлов с использование регулярных выражений.
Основные способы применения:
vrenn pattern
— вывод списка
vrenn [mask|@list] pattern /C:folder [options]
— копирование в папку
vrenn [mask|@list] pattern /M:folder [options]
— пемещение в папку
vrenn [mask|@list] pattern replace [/P:text] [/S:text]
— переименование
vrenn [mask|@list] pattern /P:text /S:text
— только добавление текста
Вложения
vrenn.4.00.zip (5.9 Кб, 452 просмотров) |
Получение ErrorLevel из команды CMD в переменную VBS-скрипта
(на примере команды сравнения файлов)
Добавлено через 18 часов 41 минуту
И да, последняя функция (Circle) несколько ошибочна. Скрипт работает, но в теории может все-таки вызвать баги. Надо так:
Добавлено через 1 минуту
Очистка пароля заданной учётной записи пользователя домена.
Добавлено через 1 минуту
Управление настройками пароля для всех членов заданной группы пользователей домена.
Добавлено через 1 минуту
Определение даты последней регистрации сеанса пользователя в многоконтроллерном домене.
Добавлено через 3 минуты
Поиск учётных записей пользователей домена, имеющих ограничения в списке станций, на которые им разрешён интерактивный вход.
Добавлено через 1 минуту
Получение списка всех контроллеров домена с указанием формального уровня их иерархии (основной|дополнительный), наличием роли глобального каталога и распределением FSMO между ними.
Добавлено через 1 час 22 минуты
Сопоставление логических томов, назначенных НЖМД и съёмным накопителям, с физическими устройствами.
Алгоритм работы сценария таков:
1. Выбор из списка логических дисков компьютера тех томов, которые размещены на НЖМД и съёмных накопителях (кроме внешних НГМД и НОД).
То есть из всех экземпляров класса Win32_LogicalDisk выбираются те экземпляры, значение свойства DriveType для которых равно 2 (Removable Disk) или 3 (Local Disk).
Добавлено через 3 минуты
Сценарий для показа членам заданной группы пользователей домена текста какого-либо уведомления (например, поздравления по случаю праздника).
Для целей переименовавания музыкальных файлов для воспроизведения в случайном порядке.
Данный скрипт переименовывает все файлы в выбранной папке, присоединяя слева к старому имени файла случайный порядковый номер. Если у файла в имени был слева номер, то старый номер удаляется.
Папка выбирается через файловый диалог Word.
Добавлено через 2 часа 32 минуты
Определение типа сеанса (интерактивный/удалённый) текущего пользователя на текущем узле и внесение данных об интерактивном сеансе в заданном регистрационном каталоге.
Будет полезно для быстрого детекта bitcoin-майнеров или других «непослушных» процессов.
Дельта времени KernelModeTime + UserModeTime процесса
/
Дельта времени KernelModeTime + UserModeTime системы в целом
* 100
Информация берется из объекта WMI (Win32_Process, Win32_Service)
Если произошла ошибка, вышлите мне ее скриншот.
Если логи не появились, нажмите левой клавишей мыши по заголовку папки и затем клавишу F5.
v.1.1.
Добавлен Parent Process Path.
v.1.2.
Сортировка по % CPU в убывающем порядке
Первым столбцом теперь идет % CPU
Убрал отчет о CPU Time
Вывод ошибки, если отчет заблокирован другой программой
Вложения
GetCPUUsage.zip (2.9 Кб, 297 просмотров) |
Батник для регистрации DynamicWrapperX 2.0 (x32, x64) и вызова функций из 32/64-битных библиотек.
В комплект уже включена DynamicWrapperX ver.2.0.0.1,
а также демо-VBS, показывающий как свернуть и развернуть «Калькулятор Windows» с помощью API-функций.
Скрипт сам запрашивает права Администратора, если понадобится.
Если Вы хотите вызывать функции из своей 32-битной библиотеки (независимо от битности ОС), раскомментируйте участок кода FindWindow.vbs в строках №№ 16-24.
Если появится новая версия библиотеки DynamicWrapperX, ее папки «32» и «64» нужно скопировать в папку «dynwrapx», заменив оригинал.
О библиотеке DynamicWrapperX
Автор: Юрий Попов (YMP).
Условия распространения библиотеки: freeware.
Доброго времени суток всем читателям блога scriptcoding.ru. В этой статье мы подробно рассмотрим метод Run Wscript.Shell объекта. Данный метод служит для запуска внешних приложений из тела сценариев Windows Script Host.
Для начала мы рассмотрим теоретическую часть, а потом приступим к программированию.
Run (strCommand, [intWindowStyle], [bWaitOnReturn]) – данный метод служит для запуска другого приложения как в консольном режиме (командная строка), так и в оконном. При открытии исполняемого файла создается новый процесс. Ему передаются следующие параметры:
strCommand – данный параметр является обязательным, поскольку задает путь для файла или команды. Стоит учитывать, что если путь содержит пробелы, то его обязательно стоит заключать в двойные кавычки, иначе, возникнет ошибка » The system cannot find the file specified » – система не может найти указанный файл. Также полезно, использовать переменные окружения в пути к приложению, это экономит время.
intWindowStyle – является необязательным, и задает стиль окна. Параметр может принимать целые значения от 0 до 10. Согласно документации, в языке vbscript можно использовать именованные константы, но, они не всегда дают ожидаемый результат, и так как эти значения между собой повторяются, я упомянул лишь три:
bWaitOnReturn – может принимать true – сценарий будет ожидать завершения работы запущенного приложения, и только потом перейдет к выполнению следующей строчки кода, false – будет продолжатся выполнение сценария независимо от того, завершилась работа запущенного приложения или нет. Также следует учесть, что если установлено true, то метод вернет код выхода вызванного приложения, если установлено false – всегда будет возвращаться ноль.
Хорошо, теперь настало время заняться программирование. Для начала напишем программный код на языке VBScript:
Давайте проанализируем логику работы данного сценария. Переменная path хранит путь к папке System32, так как в ней у нас лежат исполняемые файлы notepad и calc. Переменная окружения » %WINDIR% » позволяет сократить строки кода и не писать » C:\\Windows «. WshShell содержит ссылку на экземпляр объекта Wscript.Shell, видим, чтобы создать саму ссылку, мы перед переменной прописали ключевое слово set, после чего идет вызов метода CreateObject класса WScript, подробней о работе с объектами читайте «Урок 8 по VBScript: Объекты и классы» и «Урок 4 по JScript: Создание собственных объектов». Далее мы запускаем блокнот с помощью метода Run Wscript Shell класса, через переменную WshShell. Для программы notepad мы третий параметр команды Run поставили в true, поэтому, исполняемый файл calc запустится только после закрытия приложения блокнот, плюс, перед этим появится информационное сообщение.
Хорошо, теперь давайте посмотрим на аналогичный пример, но написанный уже на языке jscript.
В данном примере, мы видим, что для команды Run мы прописали второй параметр (1 – нормальный режим), если этого не сделать, то произойдет ошибка, язык jscript не дает нам возможности пропустить параметр. Также видим, что тут не нужно использовать дополнительное ключевое слово типа set.
WScript Shell Run
Хорошо, теперь давайте посмотрим на еще один пример на языке vbscript.
Ну и напоследок, аналогичный пример, но уже на языке jscript:
И так, давайте все подытожим… В этой статье мы разобрали метод Run класса Wscript Shell, который позволяет запускать заданное приложение, и передавать ему нужные параметры, так, мы можем открыть текстовый редактор и вставить в него нужный текст. Аналогично, можно использовать и метод Exec, который тоже позволяет запускать исполняемый файл, но в отличии от метода Run, он позволяет контролировать работу исполняемого файла.
Спасибо за внимание. Автор блога Владимир Баталий
Запуск одного скрипта из другого
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Создание одного VBS-скрипта с помощью другого
Вопрос такой может ли Vbs скрипт создать другой Vbs скрипт
Копирование текста из одного скрипта в другой и разделение одного скрипта на два
Каким способом можно копировать текст из одного скрипта в другой и как создать новый из части.
Запуск одного скрипта из другого
Понимаю, что из названия темы мало, что понятно. Постараюсь объяснить на примере. Ситуация такая.
Запуск одного скрипта из другого
Всем привет! Возникла интересная проблема. Мой скрипт содержит цикл, в котором должен вызываться.
Решение
Вложения
ru_test_script.zip (1.6 Кб, 21 просмотров) |
Помощь в написании контрольных, курсовых и дипломных работ здесь.
Запуск из одного PHP скрипта другого, не дожидаясь его завершения
Добрый день. Имеется php скрипт registratot.php и calculate.php. Как мне вызывать выполнение.
Запуск скрипта для анализа папки и запуска другого скрипта
Мне нужно написать скрипт, который каждую секунду (или 5 сек) сканировал определенную папку на.
Как из одного скрипта изменить переменную (int) другого скрипта?
У меня есть два скрипта (money который отвечает за общее количество денег и CarBuy который отвечает.