Кроме этого, с помощью объекта WshShortcut
можно сменить значок, который соответствует ярлыку.
Рис. 2.17. Свойства ярлыка в Windows ХР
Остальных свойств, имеющихся у ярлыков в Windows ХР, объект WshShortcut
не поддерживает (например, нельзя установить или сбросить флажок, позволяющий запускать процесс в отдельном адресном пространстве или под другой учетной записью пользователя).
В качестве примера ниже приведен сценарий Shortcut.js (листинг 2.42), в котором создается ярлык "Мой ярлык.lnk" на Блокнот (notepad.exe), причем этот ярлык может быть сохранен либо в меню Программы (Programs) работающего пользователя, либо на его рабочем столе. Выбор специальной папки в сценарии производится с помощью диалогового окна, которое создается методом Popup
объекта WshShell
(рис. 2.18).
Рис. 2.18. Диалоговое окно для выбора специальной папки
Рис. 2.10. Свойства ярлыка "Мой ярлык.lnk"
Для создаваемого ярлыка выбирается значок из файла Shell32.dll, находящегося в подкаталоге System каталога Windows (в Windows 95/98 этот файл находится в подкаталоге System), назначается комбинация горячих клавиш
/*****************************************************************/
/* Имя: Shortcut.js */
/* Язык: JScript */
/* Описание: Создание ярлыков в специальных папках */
/*****************************************************************/
//Объявляем переменные
var WshShell,MyShortcut,PathTarg,PathIcon,Res,PathShortcut;
//Инициализируем константы для диалоговых окон
var vbYesNo=4,vbQuestion=32,vbYes=6;
//Создаем объект WshShell
WshShell = WScript.CreateObject("WScript.Shell");
//Выводим запрос для выбора папки, в которой будет создан ярлык
Res=WshShell.Popup("Где создать ярлык?\nДа - на рабочем столе\nНет - в меню Программы",0,
"Работа с ярлыками",vbQuestion+vbYesNo);
if (Res==vbYes) //Нажата кнопка Да
//Определяем путь к рабочему столу
PathShortcut = WshShell.SpecialFolders("Desktop");
else
//Определяем путь к меню Программы
PathShortcut = WshShell.SpecialFolders("Programs");
//Создаем объект-ярлык
MyShortcut = WshShell.CreateShortcut(PathShortcut+"\\Мой ярлык.lnk");
//Устанавливаем путь к файлу
PathTarg=WshShell.ExpandEnvironmentStrings("%windir%\\notepad.exe");
MyShortcut.TargetPath = PathTarg;
//Назначаем комбинацию горячих клавиш
MyShortcut.Hotkey = "CTRL+ALT+N";
//Выбираем иконку из файла SHELL32.dll
PathIcon=
WshShell.ExpandEnvironmentStrings("%windir%\\system32\\SHELL32.dll");
MyShortcut.IconLocation = PathIcon+", 1";
MyShortcut.WindowStyle=3; //Устанавливаем тип окна (максимизировано)
MyShortcut.Save(); //Сохраняем ярлык
WScript.Echo("Ярлык создан|");
/************* Конец *********************************************/
Реализация того же сценария на языке VBScript приведена в листинге 2.43.
Листинг 2.43. Доступ к определенным специальным папкам (VBScript)
'*****************************************************************
' Имя: Shortcut.vbs
' Язык: JScript