Создаем ярлык (Shortcut) приложения на рабочем столе, в пуске на C#

15 мар. 2010 г. | | |

Создать ярлык приложения очень просто. Для этого нам понадобится библиотека Interop.IWshRuntimeLibrary, которую нужно подключить в референсы проекта (в SolutionExplorer выбираем нужный проект, правой кнопкой по References->Add Reference, во вкладке COM находим "Windows Script Host Object Model" и клацаем ОК):

И так, подготовительный этап пройден.
Добавим в проект класс, который будет заниматься созданием ярлыков. У меня он именуется ShortcutManager. Состоять он будет из одного статического метода CreateShortcut:

public class ShortcutManager
{
public static void CreateShortcut(string linkName, string apppath, string iconpath, ShortcutLocation location, string hotkey)
{
object shortPath = null;
// Определяем место, где будет создан ярлык
switch (location)
{
case ShortcutLocation.DESKTOP:
{
shortPath = (object)"Desktop";
}; break;
case ShortcutLocation.START_MENU:
{
shortPath = (object)"StartMenu";
}; break;
case ShortcutLocation.COMMON_DESKTOP:
{
shortPath = (object)"AllUsersDesktop";
}; break;
default: shortPath = (object)"Desktop"; break;
}

WshShell shell = new WshShell();
// Получаем полный адрес ярлыка
string link = Path.Combine(((string)shell.SpecialFolders.Item(ref shortPath)), linkName + @".lnk");
// Создаем объект ярлыка
IWshShortcut shortcut = (IWshShortcut)shell.CreateShortcut(link);
if (!hotkey.Equals(String.Empty))
{
// Назначаем горячую клавишу
shortcut.Hotkey = hotkey;
}
// Описание ярлыка
shortcut.Description = linkName;

shortcut.IconLocation = iconpath;
//Указываем рабочую папку
shortcut.WorkingDirectory = Path.GetDirectoryName(apppath);
// Указываем путь для программы
shortcut.TargetPath = apppath;
// Вызываем метод Save(), который и создаст ярлык
shortcut.Save();
}
}

ShortcutLocation - это Enum, содержащий возможные варианты размещения ярлыка:

public enum ShortcutLocation
{
DESKTOP,
COMMON_DESKTOP,
START_MENU
}

Для примера ярлык может быть создан на рабочем столе текущего пользователя, на общем рабочем столе и в пуск->программы.
В качестве входных аргументов CreateShortcut должен получить название ярлыка (linkName), полный путь к приложению, для которого создается ярлык (apppath), полный путь к иконке, которая будет установлена на ярлык (iconpath), размещение ярлыка (location), горячая клавиша (сочетание клавиш hotkey).
Пример использования CreateShortcut:

Shortcut.ShortcutManager.CreateShortcut("Sample Shortcut", Application.ExecutablePath, Application.ExecutablePath, ShortcutLocation.DESKTOP, String.Empty);

Полный код примера можно скачать тут.

0 коммент.:

Отправить комментарий