c#: 创建桌面快捷方式
App适配输出方式时发现问题,聊做备忘。
需要注意的是:不要直接引用Interop.IWshRuntimeLibrary.dll程序集,因为它可能是x86或x64的,倘若程序以Any CPU方式编译,则它不再有适配性。
所以用com方式添加引用,得一与App目标平台一至之程序集,可解惑也。

创建代码如下:
public static void CreateShortcutOnDesktop(string shortcutName, string description = "")
{
//添加引用 (com->Windows Script Host Object Model),using IWshRuntimeLibrary;
string desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
string shortcutPath = Path.Combine(desktopPath, string.Format("{0}.lnk", shortcutName));
if (!System.IO.File.Exists(shortcutPath))
{
// 获取当前应用程序目录地址
var shell = new IWshRuntimeLibrary.WshShell();
// 确定是否已经创建的快捷键被改名了
foreach (var item in Directory.GetFiles(desktopPath, "*.lnk"))
{
var ws = (IWshRuntimeLibrary.WshShortcut)shell.CreateShortcut(item);
if (ws.TargetPath == App.ExecutablePath)
{
System.IO.File.Move(item, shortcutPath);
return;
}
} var shortcut = (IWshRuntimeLibrary.WshShortcut)shell.CreateShortcut(shortcutPath);
shortcut.TargetPath = App.ExecutablePath;
shortcut.Arguments = string.Empty;
shortcut.Description = description;
shortcut.WorkingDirectory = Environment.CurrentDirectory;
shortcut.IconLocation = App.ExecutablePath;
shortcut.WindowStyle = ;
shortcut.Save();
}
}
需要注意的是:因其中亦有File类定义,因此若要用到System.IO程序集中File,需以全名引之。
参考资料:
C#创建桌面快捷方式 - 心灵深处的那片净土 - CSDN博客
用C#创建应用程序桌面快捷方式 - luwq168的专栏 - CSDN博客
c#: 创建桌面快捷方式的更多相关文章
- Ubuntu创建桌面快捷方式
默认情况下,ubuntu会将自动安装的软件快捷方式保存在/usr/share/applications目录下,如果我们要创建桌面快捷方式,只需要右键-复制-桌面 就Ok,如图: 上面的方法是通过系统自 ...
- Windows中创建桌面快捷方式
Windows中创建桌面快捷方式 -------------- -------------- -------------- --------------
- WPF 创建桌面快捷方式
#region 创建桌面快捷方式 string deskTop = System.Environment.GetFolderPath(System.Environment.SpecialFolder. ...
- 解决Inno Setup制作安装包无法创建桌面快捷方式的问题
转自:http://yedward.net/?id=104 昨天想把个java程序做成exe安装软件,然后就去下载了Inno Setup这个软件安装包制作软件,Inno Setup这个软件确实非常好用 ...
- C#创建桌面快捷方式 和 开机启动
/// <summary> /// 创建桌面快捷方式 2010-11-25 /// </summary> p ...
- android 为应用程序创建桌面快捷方式技巧分享
手机装的软件过多,找起来很不方便,所以在主页面有一个快捷方式的话会很不错的,本文将介绍如何实现,需要了解跟多的朋友可以参考下 我们开发一款软件后,如果手机装的软件过多,去翻的话会很难翻的,所以 ...
- Android开发之创建桌面快捷方式
Android创建桌面快捷方式就是在桌面这个应用上创建一个快捷方式,桌面应用:launcher2 通过查看launcher2的清单文件: <!-- Intent received used to ...
- PHP创建桌面快捷方式实例
要利用php创建桌面快捷方式我们需要借助于header,InternetShortcut及一些我看不懂的代码. 方法:新建一个php文件,然后把下面的代码扔进去,保存为比如shortcut.php,放 ...
- 手把手教你在ubuntu下创建桌面快捷方式
习惯使用windows的朋友来说创建桌面快捷方式简直就是so easy, 鼠标右键点击文件-->选择发送桌面快捷方式.就OK了.对于ubuntu下该如何创建桌面快捷方式呢?以下以创建eclips ...
- 在ubuntu系统中给filezilla创建桌面快捷方式
filezilla是一款开源的ftp客户端,当然他们也有服务端,这里以filezilla客户端为例创建快捷方式!默认情况下,ubuntu将自动安装的软件快捷方式保存在/usr/share/applic ...
随机推荐
- 3、redis使用场景
现代高并发复杂系统面临的挑战 现代系统随着功能的复杂化,各种各样需求层出不穷,面对愈加复杂话的业务系统.越来越庞大的用户群体,以及用户对体验的要求越来越高,性能就变得更加重要. 抛开代码逻辑.服务器性 ...
- 访问arcserver中的featureServer服务
1.在arcmap中加载图层,并发布成arcser服务(服务名dizhi),记住勾选FeatureServer服务 2.在arcserver manger中查看刚才发布的服务 3.访问featureS ...
- 使用nginx实现一个主机部署多域名指向不同docker项目
1,安装 docker yum install docker 使用Docker 中国加速器 vim /etc/docker/daemon.json 添加下面代码 { "registry-m ...
- java构建工具——ant使用
Ant是跨平台的构建工具,它可以实现项目的自动构建和部署等功能.在本文中,主要让读者熟悉怎样将Ant应用到Java项目中,让它简化构建和部署操作. 一.安装与部署 1.1 下载 下载地址:https: ...
- (整理) .NET IIS性能优化
本文收集了部分性能优化的方式,缓存.压缩.线程池调整等等,仅供参考. 1 .NET 程序中的调整 程序Sqlhelper中使用缓存 使用JSON序列化器(Jil)取代Json.NET 2 .NET 程 ...
- 团队第五次 # scrum meeting
github 本此会议项目由PM召开,召开时间为4-9日晚上9点 召开时长15分钟 任务表格 袁勤 负责协调前后端 https://github.com/buaa-2016/phyweb/issues ...
- 【安全测试自学】初探web安全处测试(二)
自学资料: 安全测试专家成长系列之-初探Web安全2.mp4 XSS攻击 案例7:IPhone5 XSS盲打酷狗+后台SQL注射 CSRF即跨站请求伪造攻击: 举例: 上传漏洞: 危害: 文件包含漏洞 ...
- CUDA compiler driver nvcc 散点 part 2
● nvcc 编译流程图 ● sm 是向前兼容的,高的版本号是在低版本号的基础上添加了新功能得到的,同一 compute_XY 编译的 .cu 文件仅能向后 sm_ZW 的实 GPU 版本(Z > ...
- LocalVariableTable之 Slot 复用
LocalVariableTable中的 Slot, 是存在复用现象的,这个我早就知道,但是,不太清楚是如何复用的. Java语言规范与JVM规范都没有对Java语言具体要如何使用JVM的局部变量sl ...
- python 反射 hasattr getattr
class BlackMedium: feature='Ugly' def __init__(self,name,addr): self.name=name ...