Книга: Windows Script Host для Windows 2000/XP

Создание ярлыков в специальных папках

Создание ярлыков в специальных папках

Для того чтобы из сценария создать ярлык в специальной папке (рабочий стол, меню Пуск (Start) и т.п.) или изменить свойства уже существующего ярлыка, необходимо:

1. Используя коллекцию WshSpecialFolders, узнать путь к нужной специальной папке.

2. С помощью метода CreateShortcut объекта WshShell создать объект WshShortcut(WshUrlShortcut) для связи с ярлыком в этой папке.

3. Задать или изменить свойства ярлыка с помощью соответствующих методов объекта WshShortcut(WshUrlShortcut).

4. Сохранить ярлык с помощью метода Save объекта WshShortcut (WshUrlShortcut).

Объект WshShortcut предоставляет доступ к следующим свойствам ярлыков (рис. 2.17):

? Объект (Target);

? Рабочая папка (Start in);

? Быстрый вызов (Shortcut key);

? Окно (Run);

? Комментарий (Comment).

Кроме этого, с помощью объекта 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), назначается комбинация горячих клавиш <Ctrl>+<Alt>+<N> и устанавливается максимизированный тип окна (рис. 2.19).

Листинг 2.42. Доступ к определенным специальным папкам (JScript)

/*****************************************************************/
/* Имя: 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%system32SHELL32.dll");
MyShortcut.IconLocation = PathIcon+", 1";
MyShortcut.WindowStyle=3;   //Устанавливаем тип окна (максимизировано)
MyShortcut.Save();  //Сохраняем ярлык
WScript.Echo("Ярлык создан|");
/*************  Конец *********************************************/

Реализация того же сценария на языке VBScript приведена в листинге 2.43.

Листинг 2.43. Доступ к определенным специальным папкам (VBScript)

'*****************************************************************
' Имя: Shortcut.vbs
' Язык: JScript
' Описание: Создание ярлыков в специальных папках
'*****************************************************************
Option Explicit
' Объявляем переменные
Dim WshShell,MyShortcut,PathTarg,PathIcon,Res,PathShortcut
' Создаем объект WshShell
Set WshShell = WScript.CreateObject("WScript.Shell")
' Выводим запрос для выбора папки, в которой будет создан ярлык
Res=WshShell.Popup("Где создать ярлык?" & vbCrLf & "Да  - на рабочем столе" & vbCrLf & _
 "Нет - в меню Программы",0,"Работа с ярлыками",vbQuestion+vbYesNo)
If Res=vbYes Then  ' Нажата кнопка Да
 ' Определяем путь к рабочему столу
 PathShortcut = WshShell.SpecialFolders("Desktop")
Else
 ' Определяем путь к меню Программы
 PathShortcut = WshShell.SpecialFolders("Programs")
End If
' Создаем объект-ярлык
Set 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%system32SHELL32.dll")
MyShortcut.IconLocation = PathIcon & ", 1"
MyShortcut.WindowStyle=3  ' Устанавливаем тип окна (максимизировано)
MyShortcut.Save   ' Сохраняем ярлык
WScript.Echo "Ярлык создан|"
'*************  Конец *********************************************

Оглавление книги


Генерация: 0.080. Запросов К БД/Cache: 0 / 0
поделиться
Вверх Вниз