Поиск на сайте: Расширенный поиск


Новые программы oszone.net Читать ленту новостей RSS
Мощный SDI текстовый редактор для программистов, веб-разработчиков и простых пользователей, с подсветой синтаксиса и под...
CopyMik - бесплатная программа для сложного копирования, переименования, транслитерации, сжатия, разжатия, шифрования, д...
Многофункциональная система технической поддержки, разработанная чтобы удовлетворить потребности сотрудников службы подд...
Iceсream Screen Recorder – это программа для захвата видео с аудио и микрофоном и создания скриншотов с помощью ряда доп...
Программа для синхронизации данных меду компьютером, ноутбуком, USB-диском и другими устройствами. GoodSync предоставляе...

Создание ярлыков при установке ОС

Текущий рейтинг: 4.24 (проголосовало 41)
 Посетителей: 21134 | Просмотров: 29577 (сегодня 0)  Шрифт: - +

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

Утилита NirCmd

Утилита NirCmd поможет создать ярлык. Команда

nircmd.exe shortcut "%ProgramFiles%\Mozilla Thunderbird\thunderbird.exe" "~$folder.desktop$" "Home" "-p Home"

Создает ярлык к Thunderbird на рабочем столе с именем Home, программа будет запущена с профилем Home (-p Home является параметром запуска исполняемого файла).

С помощью Nircmd можно проделать очень много операций, список которых не ограничивается домашней страницей. В CHM справке все описано подробно.

AutoIt

Основано на сообщении amel27 в форуме автоустановки..

Создание ярлыков можно легко реализовать скриптом на 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"

Загрузить скрипт

VBScript

Пример сценариев VBScript для создания ярлыков

Вариант 1 (спасибо, Diamond)

Set WshShell = WScript.CreateObject("WScript.Shell")
' Создание ярлыка:
Set oShellLink = WshShell.CreateShortcut("C:\Ярлык.lnk")
' Целевой путь к файлу для которого создаётся ярлык:
oShellLink.TargetPath = "%SystemRoot%\system32\notepad.exe"
' Стиль открытия окна:
' 1 - Обычный размер окна; 3 - Развёрнутое на весь экран; 7 - Свёрнутое в значoк
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

Вариант 2, универсальный (спасибо, deepred)

Option Explicit

  Dim Args1, Args2
  Args1 = ""
  Args2 = ""

  On Error Resume Next
  Args1 = Wscript.Arguments.Item(0)
  Args2 = Wscript.Arguments.Item(1)

  Dim objWshShell, objWshShortcut, objFSO
  Dim strDesktop, ShortcutName, ShortcutExt, ShortcutPath


  Set objWshShell =  WScript.CreateObject("WScript.Shell")
  strDesktop      =  objWshShell.SpecialFolders("Desktop")

  Set objFSO      =  WScript.CreateObject("Scripting.FileSystemObject")
  ShortcutName    =  objFSO.GetBaseName(Args1)
  ShortcutExt     =  objFSO.GetExtensionName(Args1)
  ShortcutPath    =  objFSO.GetParentFolderName(Args1)

  If Len(Args2)=0 Then Args2=ShortcutName

  Set objWshShortcut = objWshShell.CreateShortcut _
                       (strDesktop &"\"& Args2 &".lnk")
      With objWshShortcut
           .WorkingDirectory = ShortcutPath
           .TargetPath       = ShortcutName &"."& ShortcutExt
           .IconLocation     = Args1 &", 0"
           .Save
      End with

Использование скрипта, сохраненного, например, с именем MKLink.vbs:

wscript.exe "MKLink.vbs" "полный_путь_к_исполняемому_файлу" "имя_ярлыка"

Самораспаковывающийся (SFX) архив

Если установка приложения ведется из SFX архива, можно задействовать возможности архиватора для создания ярлыков.

WinRar

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

;Расположенный ниже комментарий содержит команды 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 не умеет создавать ярлыки, но есть замечательный модифицированный модуль, который легко справляется с этой задачей. Все подробно расписано в справке модуля, где также имеется пример, включающий создание ярлыков.

Автор: Вадим Стеркин aka Vadikan  •  Иcточник: unattended.oszone.net  •  Опубликована: 23.12.2007
Нашли ошибку в тексте? Сообщите о ней автору: выделите мышкой и нажмите CTRL + ENTER
Теги:  


Оценить статью:
Вверх
Комментарии посетителей RSS
12.08.2011/08:37  Svodnik

спасибо, очень помогло. только в "варианте 2" VBScript надо подправить строчку на:
.TargetPath = ShortcutPath &"\"& ShortcutName &"."& ShortcutExt
иначе создается ярлык имеющий неправильный путь к объекту
01.04.2012/14:50  F0rmatCeft

"Вариант 2, универсальный (спасибо, deepred)"
вариант не совсем универсальный, т.к. ярлык создается на рабочем столе
Код:
--------------------------------------------------------------------------------
Set objWshShortcut = objWshShell.CreateShortcut (strDesktop &"\"& Args2 &".lnk")
--------------------------------------------------------------------------------
имхо, логичнее было б так:
--------------------------------------------------------------------------------
Set objWshShortcut = objWshShell.CreateShortcut (Args2 &".lnk")
--------------------------------------------------------------------------------
и тогда второй параметр изменится на "полный_путь_к_ярлыку"

Чтобы оставить комментарий, зарегистрируйтесь или войдите с учетной записью социальной сети.