Windows Script Host (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 + "\\Кормушка для чайников.URL"); // Задаем свойства для ярлыка MyShortcut.TargetPath = WSHShell.ExpandEnvironmentStrings("http://www.whatis.ru"); MyShortcut.Save();
Указав в скрипте расширение .URL для ярлыка, мы даем понять, что нас интересует какой-то адрес в Интернете, а не файл. Ну и конечно, ярлык создаем в Избранном - наиболее логичное место для него.
На этом, собственно, работа с ярлыками заканчивается. Дальнейший материал будет несколько посложней, но если вы хорошо разобрались в предыдущих статьях, то он у вас не вызовет никаких проблем.
© 2003 К. Тарасов, И. Чеботарев