УЧЕБНЫЕ МАТЕРИАЛЫ ПО ПРОГРАММИРОВАНИЮ, КРЕКИНГУ, HTML, CSS, ОФИСНЫМ ПРИЛОЖЕНИЯМ
Создание ярлыков на рабочем столе или в меню "Пуск"
ЗАДАЧА
Добавить новый ярлык на рабочий стол или в меню «Пуск».
РЕШЕНИЕ
Используйте механизм COM Interop для
доступа к компоненту Windows Script Host,
предоставляющему метод WshShell.CreateShortcut.
ОБСУЖДЕНИЕ
Программно создать файл ярлыка можно по-разному. Вы можете
применить неуправляемый вызов унаследованного API, создать файл
вручную (при этом надо хорошо понимать его формат) или
разработать специализированную программу установки Windows
Installer. Проще всего использовать компонент Windows
Script Host из состава ОС Windows. Взаимодействовать с
этим компонентом СОМ можно через СОМ Interop.
Для этого нужно лишь добавить на него ссылку.
Создать новый ярлык с помощью Windows Script Host довольно легко. Сначала вам следует создать объект WshShell, после чего вы можете использовать набор WshShell.SpecialFolders для получения пути к любой из следующих папок:
|
|
Получив нужный путь, можно вызвать метод WshShell.CreateShortcut для создания объекта IWshShortcut. Затем вы можете сконфигурировать ярлык, задав свойства объекта IWshShprtcut, и вызвать его метод Save ддя сохранения окончательного результата.
Вот полный код программы, создающей ярлык для Блокнота. На форме создайте кнопку.
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using IWshRuntimeLibrary; // !!! namespace CreateShortCut { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { // Создание объекта оболочки Windows Script Host (WSH shell object) WshShell WshShell = new WshShell(); string DesktopDir = (string)WshShell.SpecialFolders.Item("Desktop"); IWshShortcut Shortcut; // Файлы ярлыков имеют (скрытое) расширение .lnk Shortcut = (IWshShortcut)WshShell.CreateShortcut(DesktopDir + "\\NotepadShortcut.lnk"); // Задание некоторых простых свойств ярдыка. Shortcut.TargetPath = "c:\\Windows\\notepad.exe"; Shortcut.WindowStyle = 1; Shortcut.Hotkey = "Ctrl+Shift+N"; Shortcut.Description = "Run Notepad"; Shortcut.WorkingDirectory = DesktopDir; // Значком ярлыка будет первый значок из файла notepad.exe Shortcut.IconLocation = "notepad.exe, 0"; // Сохранение файла ярлыка Shortcut.Save(); Text = "Ярлык создан"; } } }
Вы также можете создавать ярлыки, ссылающиеся на Web-сайты (и даже вставлять их в меню Избранное). Для этого нужно просто изменить свойство TargetPath:
Shortcut = (IWshShortcut)WshShell.CreateShortcut(DesktopDir + "\\Google.lnk"); Shortcut.TargetPath = "https://www.google.com.ua/"; // (Код задания других параметров опущен) Shortcut.Save();
Используемая литература: