- Объект WScript.Shell метод Run — запуск внешних программ
- WScript Shell Run
- Объект WScript.Shell свойство Environment — Переменные окружения Windows
- Переменные окружения Windows – теоретические основы
- Переменные среды Windows – практическая часть
- Объект WScript.Shell метод CreateShortcut — Работа с ярлыками
- Работа с ярлыками – теоретические основы
- Работа с ярлыками Windows – свойства класса
Объект WScript.Shell метод Run — запуск внешних программ
Доброго времени суток всем читателям блога scriptcoding.ru. В этой статье мы подробно рассмотрим метод Run Wscript.Shell объекта. Данный метод служит для запуска внешних приложений из тела сценариев Windows Script Host.
Для начала мы рассмотрим теоретическую часть, а потом приступим к программированию.
Run (strCommand, [intWindowStyle], [bWaitOnReturn]) – данный метод служит для запуска другого приложения как в консольном режиме (командная строка), так и в оконном. При открытии исполняемого файла создается новый процесс. Ему передаются следующие параметры:
strCommand – данный параметр является обязательным, поскольку задает путь для файла или команды. Стоит учитывать, что если путь содержит пробелы, то его обязательно стоит заключать в двойные кавычки, иначе, возникнет ошибка » The system cannot find the file specified » – система не может найти указанный файл. Также полезно, использовать переменные окружения в пути к приложению, это экономит время.
intWindowStyle – является необязательным, и задает стиль окна. Параметр может принимать целые значения от 0 до 10. Согласно документации, в языке vbscript можно использовать именованные константы, но, они не всегда дают ожидаемый результат, и так как эти значения между собой повторяются, я упомянул лишь три:
- 0 – скрывает окно, будет виден только процесс в диспетчере задач.
- 1 – нормальный режим
- 2 – свернутый вид
- 3 – развернутый вид
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.
В этом примере мы также запустили приложение notepad, но, не прописывали путь к нему. Дело в том, что команда Run объекта Wscript.Shell работает как команда » Windows Пуск/Выполнить «, и при запуске приложения, сперва идет его поиск в переменных средах Windows, в которые, и входит папка System32 . Также видим, что мы передали программе содержимое нашего сценария (строка WScript.ScriptFullName), фактически, скопировали в него весть текст скрипта.
Ну и напоследок, аналогичный пример, но уже на языке jscript:
И так, давайте все подытожим… В этой статье мы разобрали метод Run класса Wscript Shell, который позволяет запускать заданное приложение, и передавать ему нужные параметры, так, мы можем открыть текстовый редактор и вставить в него нужный текст. Аналогично, можно использовать и метод Exec, который тоже позволяет запускать исполняемый файл, но в отличии от метода Run, он позволяет контролировать работу исполняемого файла.
Спасибо за внимание. Автор блога Владимир Баталий
Объект WScript.Shell свойство Environment — Переменные окружения Windows
Всем доброго дня, с вами автор блога scriptcoding.ru. Сегодня мы рассмотрим работу с переменными окружения Windows, а именно: теоретические основы и программный код для написания сценариев.
Переменные окружения Windows – теоретические основы
Переменные среды – Это по своей природе простые текстовые строки, которые позволяют хранить системную или пользовательскую информацию. Оны нужны, что бы быстро получить доступ к нужному ресурсу в операционной системе windows или системному значению. Все среды разделяют на два типа:
- Системные – Данный тип создается автоматически операционной системой, они доступны для всех пользователей. Информация хранится в реестре, в большинстве случаев, что бы изменения вступили в силу, нужно произвести перезапуск операционной системы.
- Пользовательские – Данный тип создается конкретным пользователей, поэтому информация доступна в большинстве случаев только для того пользователя, которые ее записал. В отличии от системных сред, пользовательские переменные окружения ОС Windows вступают сразу в силу, однако, нужно перезапустить те приложения, которые будут их использовать.
Доступ к средам в Windows XP осуществляется через значок «мой компьютер«: нажимаем правой кнопкой мыши по значку и из контекстного меню выбираем пункт «Свойства», далее переходим на вкладку «Дополнительно» и там нажимаем на кнопку «переменные_среды«. Частично, работу с переменными окружения Windows я рассмотрел в статье «Урок 4 по CMD — переменные окружения».
Переменные среды Windows – практическая часть
Хорошо, теперь давайте перейдем непосредственно к основной части статьи. Мы рассмотрим объект WScript.Shell, его свойство Environment позволяет работать с переменными окружения Windows:
Environment ([strType]) – По умолчанию, данное свойство предоставляет доступ ко всем переменным окружения Windows типа System, но можно задать и другой тип, их всего четыре:
И так, переменная среда Windows, это переменная, которая хранится в самой системе, она может быть временной, системной или, может быть создана пользователем. Так, благодаря переменным окружения Windows мы можем через меню Пуск/Выполнить запускать командную строку или калькулятор (все то, что лежит в системных каталогах) не вводя полного пути. Также, Windows переменные окружения хранят информацию о процессоре, профиле пользователя и многое другое.
Давайте напишем простой сценарий на языке vbscript для лучшего понимания ситуации:
Видим, что WshShell хранит ссылку на объект WScript.Shell, WshEnvirSys хранит ссылку на коллекцию переменных окружения Windows типа SYSTEM , WshEnvirUsr – USER , WshEnvirVol – VOLATILE и WshEnvirProc – PROCESS . Видим, что при создании ссылки на объект или коллекцию в языке vbscript используется ключевое слово set. Далее мы используем цикл For Each для перебора элементов коллекции и формирования списка. Списки выводятся в конце сценария с помощью функции MsgBox.
А вот аналогичный пример, но уже на языке jscript:
Хорошо, у коллекции wscript shell environment есть свойство length , которое хранит в себе число всех элементов, метод Remove (strName) позволяет удалить переменную окружения ОС Windows, которая задана строковым параметром strName.
Хорошо, давайте рассмотрим следующий пример на языке vbscript:
В этом примере по wscript shell environment свойству мы создали собственную переменную среду my_usr_var, записав в нее текстовую строку. Перед этим, мы вывели общее количество всех сред.
А вот аналогичный пример на языке jscript:
И так, в этой статье мы рассмотрели работу со свойством Environment класса WScript.Shell. Подписывайтесь на обновление блога, что бы быть в курсе новых материалов.
Спасибо за внимание. Автор блога Владимир Баталий
Объект WScript.Shell метод CreateShortcut — Работа с ярлыками
Приветствую всех читателей блога scriptcoding.ru. Сегодня мы рассмотрим работу с ярлыками в Windows. Сначала мы рассмотрим теоретические основы: определение, создание и параметры ярлыков Windows, далее мы приступим к программированию и программным методам для работы с ярлыками.
Работа с ярлыками – теоретические основы
Сами по себе ярлычки являются ссылками на файлы, папки, диски, сетевые устройства и так далее. Удобство заключается в том, что достаточно один раз создать ссылку на нужный объект, поместить её в удобном месте, и тем самым быстро получить доступ к заданному объекту. Работа с ярлыками начинается с их создания в указанном месте:
- Рабочий стол – Тут всё довольно просто, сначала мы щелкаем правой кнопкой мыши по нужному файлу или папке. Из контекстного меню выбираем пункт «Отправить/Рабочий стол«, в итоге на рабочем столе будет создана ссылка для заданного элемента.
- Меню Пуск – При работе с ярлыками Windows, может возникнуть потребность создать их в меню Пуск. Тут всё довольно просто, перетаскиваем нужный файл на кнопку Пуск, ждем, пока меню раскроется, далее перетаскиваем элемент в нужное место (например, «Пуск/ Программы/ Стандартные«), как только мы отпустим правую кнопку мыши, в заданном месте появится ярлычок Windows.
Хорошо, с теоретической частью мы закончили, теперь можно приступить к программированию. Мы рассмотри метод объекта WScript Shell – CreateShortcut , который относится к объектной модели Windows Script Host. CreateShortcut предназначен как для работы с ярлыками Windows – расширение .lnk , так и с теми, которые ссылаются на сетевой ресурс – расширение .url . Прежде, чем получить доступ к методу CreatеShоrtcut, надо сначала создать ссылку на класс WScript_Shell, которая будет храниться в нужной переменной. Поскольку мы можем работать как с локальными, так и с сетевыми ресурсами, то в первом случае лучше дать переменной имя вида WshShorcut, а во втором – WshUrlShorcut.
Давайте посмотрим на общий синтаксис и логику работы метода:
CreateShortcut (str) – Параметр str хранит в себе имя и путь для создаваемого или изменяемого ярлыка. После того, как мы прописали местоположение и создали переменную, мы получаем одновременно доступ к двум объектам, например:
Язык vbscript
Язык jscript
Нужно понимать, что имена WshShorcut и WshUrlShorcut являются условными, то есть, мы можем назначить любое другое имя переменной.
Работа с ярлыками Windows – свойства класса
После того как мы использовали CrеаteShоrtсut, что бы показать как создать ярлык Windows, мы тем самым сохранили в заданной переменной ссылку на новый класс. Давайте рассмотрим сначала методы и свойства такого объекта, который отвечает за работу с ярлыками.
Arguments – Данное свойство задает аргументы командной строки для приложения, на которое надо ссылаться. Дело в том, что для некоторых приложений можно прописывать аргументы, например, мы можем показать как создать ярлык для командного процессора cmd, и с помощью аргументов указать, что бы сразу вывелась справка по команде xcopy.
Description – В это свойство мы можем прописать описание.
FullName – Полное местоположение к ярлычку.
HotKey – Данное свойство отвечает за «Горячую» клавишу, как правило, тут прописываются комбинации клавиш для запуска того приложения, на которое надо сослаться.
IconLocation – Хранит в себе местоположение иконки.
TargetPath – Местоположение файла, на который мы будем ссылаться.
WindowStyle – Определяет параметры окна для приложения при его запуске, может принимать только целые значения:
- 4 – стандартный размер окна
- 3 – развернутый вид (максимизировано)
- 7 – свернутое окно (минимизировано)
WorkingDirectory – Имя каталога для приложения, на которое мы ссылаемся.
Save () – Данный метод является обязательным, он сохраняет все заданные настройки при работе с ярлыками и создает его.
Хорошо, теперь давайте напишем такой пример на языке vbscript:
В самом начале мы объявляем переменную WshShell, далее с помощью ключевого слова set мы формируем ссылку на экземпляр объекта Wscript_Shell. Далее мы создали две процедуры: CreateDesktop и CreateStartupt . Давайте рассмотрим каждую по отдельности:
CreateDesktop – Назначение данной процедуры, показывает как создать ярлык для программы Блокнот на рабочем столе. Видим, что тут мы объявили переменную DPath , которая хранит в себе полный путь к рабочему столу, для его определения мы использовали SpecialFolders (подробней о нем в статье «Объект Wscript Shell метод SpecialFolders»), еще одна переменная LinkDeskop , хранит в себе ссылку на класс, который мы получаем, при использовании CreateShorcut класса Wscript Shell. Работа с ярлыками. Как уже упоминалось, методу нужно передать имя файла-ярлыка и полный путь к нему (если прописать только имя, то файл-ярлык будет создан в той папке, из которой запущен текущий сценарий). Далее уже происходит назначение нужных данных свойствам. Стоит всегда помнить, что если не использовать Save(), то ярлычок не будет создан.
Обратите внимание на свойство Arguments – тут мы прописали путь_к нашему сценарию, поэтому, при запуске файла-ярлыка, откроется блокнот, и в нем отобразится содержимое сценария.
CreateStartup – Данная процедура показывает как создать ярлык в меню «Пуск/Программы» для программы Калькулятор. Тут мы прописали только одно свойство, которое отвечает за путь_к_приложению.
В самом конце для запуска наших процедур мы используем ключевое слово call.
Хорошо, а вот пример использования CrеаteShоrtсut на языке jscript, он работает аналогично предыдущему примеру, я только изменил имена создаваемых ярлычков:
Как я упомянул выше, используя метод CreateShorcut Wscript_Shell класса, мы можем создавать не только стандартные ярлыки для локальных, но и для сетевых элементов. Работа с Windows ярлыками. В таком случае, как правило, вместо имени WshShorcut прописывают WshUrlShorcut, расширения создаваемого файла меняются на .url. Свойства и метод остаются теми же, но только в свойстве TargetPath мы указываем URL адрес.
Спасибо за внимание. Автор блога Владимир Баталий