Создание ярлыков


Чеботарев Игорь

Продолжая тему WSH, в этой статье мне хотелось бы рассказать, как с помощью скрипта создавать ярлыки для файлов и Интернет-URL'ов, а также как работать с системными папками Windows.

Давайте для начала попробуем создать ярлык Блокнота на Рабочем столе:

// Создание ярлыка программы. JScript
var vbOKCancel = 1;
var vbInformation = 64;
var vbCancel = 2;
var Message = "Вы действительно хотите создать ярлык на Рабочем столе?";
var Title   = "Подтвердите действие";
var WSHShell = WScript.CreateObject("WScript.Shell");
Welcome();
// Узнаем путь к Рабочему столу
var DesktopPath = WSHShell.SpecialFolders("Desktop");
// Создаем ярлык
var MyShortcut = WSHShell.CreateShortcut(DesktopPath + "\\Блокнот.lnk");
// Задаем свойства для ярлыка:
// Запускаемый файл
MyShortcut.TargetPath = WSHShell.ExpandEnvironmentStrings("%windir%\\notepad.exe");
// Директория запускаемого файла
MyShortcut.WorkingDirectory = WSHShell.ExpandEnvironmentStrings("%windir%");
// Клавиши для быстрого вызова программы
MyShortcut.HotKey = ("CTRL+ALT+N");
// Тип окна запускаемого файла
MyShortcut.WindowStyle = 4;
// Иконка, используемая для ярлыка
MyShortcut.IconLocation = WSHShell.ExpandEnvironmentStrings("%windir%\\notepad.exe, 0");
// Сохраняем изменения свойств ярлыка
MyShortcut.Save();
// Докладываем, что все готово
WScript.Echo("Ярлык для Блокнота создан на Вашем Рабочем столе");
function Welcome() {
      var intDoIt;
      intDoIt =  WSHShell.Popup(Message,
                              0,
                              Title,
                              vbOKCancel + vbInformation );
      if (intDoIt == vbCancel) {
           WScript.Quit();
      }
}

Комментариев более чем достаточно, чтобы понять принцип работы скрипта. Более подробно расскажу о свойстве WindowStyle. Вызовите свойства любого ярлыка и обратите внимание на поле "Окно:". Здесь вы можете задавать способ запуска программы. Вот какие значения можно использовать при задании этого свойства:

3 - при запуске окно программы будет развернуто на весь экран;
4 - стандартный размер окна;
7 - окно будет свернуто в значок на панели задач.

В четвертой строчке вам встречается новый метод - SpecialFolders. Он возвращает путь к системным папкам Windows. Вот список наиболее любопытных папок:

Desktop - Рабочий стол
Favorites - Избранное
Fonts - Шрифты
MyDocuments - Мои документы
NetHood - Сетевое окружение
PrintHood - Принтеры
Programs - подменю Программы из меню Пуск
Recent - подменю Документы из меню Пуск
SendTo - подменю Отправить из контекстного меню файлов
StartMenu - Главное меню
Startup - Автозагрузка из подменю Программы
Templates - Шаблоны

Есть еще несколько папок: AllUsersDesktop, AllUsersStartMenu, AllUsersPrograms, AllUsersStartup - но они присутствуют только в WinNT/2000/XP

Вы можете поменять какие-то свойства уже существующего ярлыка. Для этого в шестой строке просто укажите его полное имя и задайте параметры, какие вы хотите изменить. В этом случае перечислять все свойства, как в примере создания нового ярлыка, не обязательно.

Теперь от файлов плавно перейдем к линкам. Ярлыки для адресов в Интернете создаются практически так же. Только надо учесть, что у них поменьше свойств, а точнее - только одно:

//Создание файла линка Интернет. JScript
var WSHShell = WScript.CreateObject("WScript.Shell");
// Узнаем путь к "Избранному"
var FavoritesPath = WSHShell.SpecialFolders("Favorites");
// Создаем ярлык
var MyShortcut = WSHShell.CreateShortcut(FavoritesPath + "\\Whatis.RU - доступно о компьютерах.URL");
// Задаем свойства для ярлыка
MyShortcut.TargetPath = WSHShell.ExpandEnvironmentStrings("http://www.whatis.ru");
MyShortcut.Save();

Указав в скрипте расширение .URL для ярлыка, мы даем понять, что нас интересует какой-то адрес в Интернете, а не файл. Ну и конечно, ярлык создаем в Избранном - наиболее логичное место для него.

На этом, собственно, работа с ярлыками заканчивается. Дальнейший материал будет несколько посложней, но если вы хорошо разобрались в предыдущих статьях, то он у вас не вызовет никаких проблем.

читать еще по теме