Объект WScript.Shell метод CreateShortcut — Работа с ярлыками

Объект WScript.Shell метод CreateShortcut — Работа с ярлыками Объектная модель Windows Script Host

Приветствую всех читателей блога 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

Dim WshShorcut, WshUrlShorcutSet WshShorcut = WScript. CreateObject("WScript.Shell")Set WshUrlShorcut = WScript. CreateObject("WScript.Shell")

Язык jscript

var WshShorcut, WshUrlShorcutWshShorcut = WScript. CreateObject("WScript.Shell");WshUrlShorcut = WScript. CreateObject("WScript.Shell");

Нужно понимать, что имена WshShorcut и WshUrlShorcut являются условными, то есть, мы можем назначить любое другое имя переменной.

Работа с ярлыками Windows – свойства класса

Работа с windows ярлыками

После того как мы использовали CrеаteShоrtсut, что бы показать как создать ярлык Windows, мы тем самым сохранили в заданной переменной ссылку на новый класс. Давайте рассмотрим сначала методы и свойства такого объекта, который отвечает за работу с ярлыками.

Arguments – Данное свойство задает аргументы командной строки для приложения, на которое надо ссылаться. Дело в том, что для некоторых приложений можно прописывать аргументы, например, мы можем показать как создать ярлык для командного процессора cmd, и с помощью аргументов указать, что бы сразу вывелась справка по команде xcopy.

Description – В это свойство мы можем прописать описание.

FullName – Полное местоположение к ярлычку.

HotKey – Данное свойство отвечает за «Горячую» клавишу, как правило, тут прописываются комбинации клавиш для запуска того приложения, на которое надо сослаться.

IconLocation – Хранит в себе местоположение иконки.

TargetPath – Местоположение файла, на который мы будем ссылаться.

WindowStyle – Определяет параметры окна для приложения при его запуске, может принимать только целые значения:

  • 4 – стандартный размер окна
  • 3 – развернутый вид (максимизировано)
  • 7 – свернутое окно (минимизировано)

WorkingDirectory – Имя каталога для приложения, на которое мы ссылаемся.

Save() – Данный метод является обязательным, он сохраняет все заданные настройки при работе с ярлыками и создает его.

Хорошо, теперь давайте напишем такой пример на языке vbscript:

'******************************************************' wscript_shell_CreateShortcut' Работа с ярлыками' WshShorcut.vbs'******************************************************OptionExplicitdim WshShell1set WshShell1 = WScript.CreateObject("WScript.Shell")Sub CreateDesktop() dim DPath, LinkDesktop ' местоположение рабочего_стола DPath= WshShell1.SpecialFolders("Desktop") set LinkDesktop = WshShell1.CreateShortcut(DPath & "notepad.lnk") With LinkDesktop ' в качестве аргумента передаем путь к сценарию .Arguments = Wscript.ScriptFullName ' Описание .Description = "Запуск блокнота и передача ему содержимого сценария"' Назначаем горячие клавиши .HotKey = "CTRL+ALT+N"' адрес к файлу значка .IconLocation = WshShell1.ExpandEnvironmentStrings("%windir%notepad.exe, 0") ' адрес исполняемого ресурса .TargetPath = WshShell1.ExpandEnvironmentStrings("%windir%System32notepad.exe") ' определяем развернутый вид .WindowStyle = 3 ' описание рабочего_каталога для исполняемого ресурса .WorkingDirectory = WshShell1.ExpandEnvironmentStrings("%windir%System32") ' сохраняем все настройки и показываем, как создать ярлык .Save() EndWithEndSubSub CreateStartup() dim DPath, LinkStartup ' путь_к меню Пуск/Программы DPath= WshShell1.SpecialFolders("Programs") set LinkStartup = WshShell1.CreateShortcut(DPath & "calc.lnk") ' путь_к запускаемому ресурсу LinkStartup.TargetPath = WshShell1.ExpandEnvironmentStrings("%windir%System32calc.exe") LinkStartup.Save()EndSubCall CreateDesktopMsgBox "Создан_ярлык_на_рабочем_столе"Call CreateStartupMsgBox "Создан_ярлык в меню Пуск/Программы"

В самом начале мы объявляем переменную WshShell, далее с помощью ключевого слова set мы формируем ссылку на экземпляр объекта Wscript_Shell. Далее мы создали две процедуры: CreateDesktop и CreateStartupt. Давайте рассмотрим каждую по отдельности:

CreateDesktop – Назначение данной процедуры, показывает как создать ярлык для программы Блокнот на рабочем столе. Видим, что тут мы объявили переменную DPath, которая хранит в себе полный путь к рабочему столу, для его определения мы использовали SpecialFolders (подробней о нем в статье «Объект Wscript Shell метод SpecialFolders«), еще одна переменная LinkDeskop, хранит в себе ссылку на класс, который мы получаем, при использовании CreateShorcut класса Wscript Shell. Работа с ярлыками. Как уже упоминалось, методу нужно передать имя файла-ярлыка и полный путь к нему (если прописать только имя, то файл-ярлык будет создан в той папке, из которой запущен текущий сценарий). Далее уже происходит назначение нужных данных свойствам. Стоит всегда помнить, что если не использовать Save(), то ярлычок не будет создан.

Как создать в Windows ярлык

Скачать архив с примерами

Обратите внимание на свойство Arguments – тут мы прописали путь_к нашему сценарию, поэтому, при запуске файла-ярлыка, откроется блокнот, и в нем отобразится содержимое сценария.

CreateStartup – Данная процедура показывает как создать ярлык в меню «Пуск/Программы» для программы Калькулятор. Тут мы прописали только одно свойство, которое отвечает за путь_к_приложению.

В самом конце для запуска наших процедур мы используем ключевое слово call.

Хорошо, а вот пример использования CrеаteShоrtсut на языке jscript, он работает аналогично предыдущему примеру, я только изменил имена создаваемых ярлычков:

//******************************************************// wscript_shell_CreateShortcut// Работа с ярлыками// WshShorcut.js//******************************************************var WshShell;WshShell = WScript.CreateObject("WScript.Shell");function CreateDesktop(){var DPath1, LinkDesktop;// путь_к_рабочему_столу DPath1= WshShell.SpecialFolders("Desktop"); LinkDesktop = WshShell.CreateShortcut(DPath1 +"\notepad_new.lnk"); with(LinkDesktop){// в качестве аргумента передаем местоположение сценария Arguments = WScript.ScriptFullName;// Описание Description ="Запуск блокнота и передача ему содержимого сценария";// Назначаем горячие клавиши HotKey ="CTRL+ALT+N";// адрес к файлу значка IconLocation = WshShell.ExpandEnvironmentStrings("%windir%\notepad.exe, 0");// адрес к запускаемому ресурсу TargetPath = WshShell.ExpandEnvironmentStrings("%windir%\System32notepad.exe");// определяем развернутый вид WindowStyle =3;// описание рабочего_каталога для исполняемого ресурса WorkingDirectory = WshShell.ExpandEnvironmentStrings("%windir%\System32");// сохраняем все настройки и показываем, как создать ярлык Save();}returntrue;}function CreateStartup(){var DPath1, LinkStartup;// путь_к меню Пуск/Программы DPath= WshShell.SpecialFolders("Programs"); LinkStartup = WshShell.CreateShortcut(DPath1 +"\calc_new.lnk");// адрес к запускаемому приложению LinkStartup.TargetPath= WshShell.ExpandEnvironmentStrings("%windir%\System32\calc.exe"); LinkStartup.Save();}CreateDesktop();WScript.Echo("Создан_ярлык_на_рабочем_столе");CreateStartup();WScript.Echo("Создан_ярлык в меню Пуск/Программы");

Как я упомянул выше, используя метод CreateShorcut Wscript_Shell класса, мы можем создавать не только стандартные ярлыки для локальных, но и для сетевых элементов. Работа с Windows ярлыками. В таком случае, как правило, вместо имени WshShorcut прописывают WshUrlShorcut, расширения создаваемого файла меняются на .url. Свойства и метод остаются теми же, но только в свойстве TargetPath мы указываем URL адрес.

Оцените статью
Технологии программирования и ведение блога
Добавить комментарий