Создать ярлык приложения очень просто. Для этого нам понадобится библиотека 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);
Полный код примера можно скачать тут.
Создаем ярлык (Shortcut) приложения на рабочем столе, в пуске на C#
Подписаться на:
Комментарии к сообщению (Atom)
Ярлыки
.net
(17)
.net framework
(4)
256
(1)
армагедон
(1)
Библиотека
(12)
видео
(1)
вконтакте
(1)
декомпилятор
(1)
задачки
(5)
итоги
(1)
кодировка
(1)
космос
(1)
маркет
(1)
монетизация
(2)
мысли в слух
(10)
обфускация
(1)
Оптимизация сайта
(1)
отдых
(3)
Ошибка 720
(1)
переводы
(5)
подкасты для разработчика
(3)
прибыль
(1)
приложение
(2)
Разное
(28)
разработка ПО
(31)
рефакторинг
(5)
скачивания
(1)
ссылки
(2)
статистика
(1)
юмор
(31)
Access
(1)
admin2012.ru
(1)
admob
(1)
AMD
(1)
android
(6)
android conventions
(1)
android studio
(1)
angular.js
(1)
ant
(1)
antipattern
(1)
atdd
(2)
autocomplete
(1)
backbone.js
(1)
background repeat
(1)
batch file
(1)
batman.js
(1)
bdd
(3)
bootstrap
(1)
bug
(1)
build
(1)
C#
(31)
clojurescript
(1)
codeigniter
(1)
coding style
(1)
coffeescript
(3)
components
(1)
css
(1)
Custom splash screen
(1)
DDD
(1)
DI
(1)
eclipse
(1)
facebook
(1)
gradle
(1)
hot keys
(1)
html
(4)
ide
(1)
IE
(4)
IE8
(2)
IoC
(6)
ion auth
(1)
jasmine
(1)
java
(3)
javas
(1)
javascript
(9)
jquery
(4)
jquery ui
(1)
justify
(1)
knockout.js
(2)
linq
(3)
localDB
(1)
massive
(1)
micro orm
(1)
mocha
(1)
mock
(1)
mono
(1)
monodroid
(1)
moq
(2)
mpress
(1)
ms sql ce
(8)
msswit2013
(2)
mvc framework
(1)
mysql
(2)
NetBeans
(1)
nodejs
(1)
nosql
(1)
npm
(1)
object db
(1)
opera apps
(1)
ORM
(2)
phonegap
(1)
php
(12)
phpunit
(3)
play market
(2)
qunit
(1)
RegExpr
(2)
require.js
(1)
samsung apps
(2)
screenshoot
(1)
sdk
(1)
Shortcut
(1)
Silverlight
(4)
singleton
(1)
slide me
(1)
soap
(2)
social network
(1)
spellcheck
(1)
SpicIE
(1)
sql
(3)
sqlite
(4)
style
(1)
SublimeText 2
(5)
Super Mario
(1)
svn
(1)
tdd
(14)
tddigest
(5)
testing
(7)
text align
(1)
Tools
(18)
torrents.ru
(1)
tortoisesvn
(1)
twitter
(1)
uml
(1)
unit testing
(5)
unity
(3)
usability
(2)
virus
(1)
visual studio
(7)
web services
(2)
Windows 7
(1)
xunit
(3)
ZenCoding
(2)
Копирайты
Авторские права на публикуемые материалы (кроме тех материалов, где явно указан источник) принадлежат автору блога (мне) и могут быть использованы где-либо еще только с моего согласия.
Блог о жизни вне кода
Постоянные читатели
Популярно
-
Понравился анекдот о колбасе и яйцах :) Жена посылает мужа-программиста в магазин: - Дорогой, купи, пожалуйста, палку колбасы, и если б...
-
Продолжаю серию постов о своём первом андроид-приложении. Сегодня мысли о публикации приложения в разных маркетах.
-
Бета-версия одиннадцатой cтудии вызвала много охов и ахов. Чтобы там ни говорили, работать в ней приятно, хоть по началу немного необычно. ...
-
Перевод поста "Top 10 Things That Annoy Programmers" Кевина Панга. Оригинал тут
-
Jquery.Inputmask - крутой (да-да, именно) плагин, добавляющий гибкости в работу с обычным текстовым полем для ввода. Плагин является ус...
-
Разделяй и влавствуй - подход на все времена. Концепция модульного программирования не нова, и хорошо себя зарекомендовала. В мире разрабо...
-
Фридман А.Л. - Основы объектно-ориентированной разработки программных систем. ( скачать ) Книга написана как учебное пособие для студентов ...
-
Steve Freeman, Nat Pryce. Growing Object-Oriented Software, Guided by Tests ( скачать ) Test-Driven Development (TDD) is now an established...
-
Для некоторых методов класса Microsoft Code Analysis даёт такой совет: CA1822 : Microsoft.Performance : The 'this' parameter (or ...
0 коммент.:
Отправить комментарий