Создание ярлыков при установке системы
Материал из OSZone.net wiki.
К программам, скопированным при помощи $OEM$ папок, нередко приходится создавать ярлыки из командной строки. Кроме того, в некоторых случаях нужно создать ярлык с определенными параметрами для запуска программы. Для создания ярлыков существуют различные способы.
Содержание |
Утилита nircmd
Утилита Nircmd поможет создать ярлык. Команда
nircmd.exe shortcut "%ProgramFiles%\Mozilla Thunderbird\thunderbird.exe" "~$folder.desktop$" "Home" "-p Home"
Создает ярлык к Thunderbird на рабочем столе с именем Home, программа будет запущена с профилем Home (-p Home является параметром запуска исполняемого файла).
С помощью Nircmd можно проделать очень много операций, список которых не ограничивается домашней страницей. В CHM справке все описано подробно.
AutoIt
Создание ярлыков можно легко реализовать скриптом на AutoIt (v.3). Прилагаю вариант скрипта, который по сути лишь оболочка над командой FileCreateShortcut. Осталось скомпилировать EXE-файл и вперед...
Список ключей, в основном выдран из справки к AutoIt:
/f Full path and file name of file to create shortcut to. /l Full path and file name of the shortcut. /w Working directory. [optional] /a Additional file arguments. [optional] /d File Description. [optional] /i Full Path/File name of icon to use. [optional]
Пример использования:
shortcut.exe /f:"%ProgramFiles%\Ahead\Nero\nero.exe" /a:"/w" /l:"%ALLUSERSPROFILE%\Desktop\Nero Express"
Основано на сообщении amel27 в форуме автоустановки Windows.
Самораспаковывающийся (SFX) архив
Если установка приложения ведется из SFX архива, можно задействовать возможности архиватора для создания ярлыков.
WinRAR
SFX-модуль архиватора WinRAR обладает широкими возможностями для создания ярлыков.
Делается архив SFX, и задаем параметры для разархивирования. Ниже пример:
;Расположенный ниже комментарий содержит команды SFX-сценария Path=%systemdrive%\Program Files\AIMP\ SavePath Silent=1 Overwrite=1 Shortcut=D, "cAIMP.exe", "", "Аналог winamp", "AIMP.lnk" Shortcut=P, "cAIMP.exe", "", "Аналог winamp", "AIMP.lnk"
Пояснения:
- Silent=1 - включен тихий режим
- Overwrite=1 - включена перезапись существующих файлов
- Shortcut=D - ярлык для рабочего стола
- Shortcut=P - ярлык для Меню пуск
7-Zip
SFX-модуль архиватора 7-Zip не умеет создавать ярлыки, но есть замечательный модифицированный модуль, который легко справляется с этой задачей.
Vadikan 23:10, 20 сентября 2006 (MSD)
VBScript
Set WshShell = WScript.CreateObject("WScript.Shell")
' Создание ярлыка: Set oShellLink = WshShell.CreateShortcut("C:\Ярлык.lnk")
' Целевой путь к файлу для которого создаётся ярлык: oShellLink.TargetPath = "%SystemRoot%\system32\notepad.exe"
' Стиль открытия окна: ' 1 - Обычный размер окна; 3 - Развёрнутое на весь экран; 7 - Свёрнутое в значёк oShellLink.WindowStyle = 1
' Клавиши быстрого вызова: oShellLink.Hotkey = "CTRL+SHIFT+F"
' Путь к файлу который содержит иконку для ярлыка: oShellLink.IconLocation = "notepad.exe, 0"
' Комментарий: oShellLink.Description = "Это тестовый ярлык"
' Рабочая папка: oShellLink.WorkingDirectory = "%SystemRoot%\system32"
' Аргументы командной строки: ' Аргументы имеют смысл если файл к которому обращается ярлык - исполняемый, т.е. имеет одно из следующих расширений: .exe; .bat; .com; .cmd; .vbs и т.д. oShellLink.Arguments = "C:\MyFile.txt"
' Сохранение ярлыка на жестком диске: oShellLink.Save
--Diamond 11:53, 18 сентября 2007 (MSD)

