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#: 创建桌面快捷方式的更多相关文章

  1. Ubuntu创建桌面快捷方式

    默认情况下,ubuntu会将自动安装的软件快捷方式保存在/usr/share/applications目录下,如果我们要创建桌面快捷方式,只需要右键-复制-桌面 就Ok,如图: 上面的方法是通过系统自 ...

  2. Windows中创建桌面快捷方式

    Windows中创建桌面快捷方式 -------------- -------------- -------------- --------------

  3. WPF 创建桌面快捷方式

    #region 创建桌面快捷方式 string deskTop = System.Environment.GetFolderPath(System.Environment.SpecialFolder. ...

  4. 解决Inno Setup制作安装包无法创建桌面快捷方式的问题

    转自:http://yedward.net/?id=104 昨天想把个java程序做成exe安装软件,然后就去下载了Inno Setup这个软件安装包制作软件,Inno Setup这个软件确实非常好用 ...

  5. C#创建桌面快捷方式 和 开机启动

              /// <summary>         /// 创建桌面快捷方式 2010-11-25         /// </summary>         p ...

  6. android 为应用程序创建桌面快捷方式技巧分享

    手机装的软件过多,找起来很不方便,所以在主页面有一个快捷方式的话会很不错的,本文将介绍如何实现,需要了解跟多的朋友可以参考下     我们开发一款软件后,如果手机装的软件过多,去翻的话会很难翻的,所以 ...

  7. Android开发之创建桌面快捷方式

    Android创建桌面快捷方式就是在桌面这个应用上创建一个快捷方式,桌面应用:launcher2 通过查看launcher2的清单文件: <!-- Intent received used to ...

  8. PHP创建桌面快捷方式实例

    要利用php创建桌面快捷方式我们需要借助于header,InternetShortcut及一些我看不懂的代码. 方法:新建一个php文件,然后把下面的代码扔进去,保存为比如shortcut.php,放 ...

  9. 手把手教你在ubuntu下创建桌面快捷方式

    习惯使用windows的朋友来说创建桌面快捷方式简直就是so easy, 鼠标右键点击文件-->选择发送桌面快捷方式.就OK了.对于ubuntu下该如何创建桌面快捷方式呢?以下以创建eclips ...

  10. 在ubuntu系统中给filezilla创建桌面快捷方式

    filezilla是一款开源的ftp客户端,当然他们也有服务端,这里以filezilla客户端为例创建快捷方式!默认情况下,ubuntu将自动安装的软件快捷方式保存在/usr/share/applic ...

随机推荐

  1. Centos 7环境下配置MySQL 5.7读写分离

    1.实验目的: 实现在Centos 7系统环境下,MySQL5.7读写分离. 2.实验条件: MySQL主服务器:Centos 7桌面环境,IP:10.10.11.31 MySQL从服务器:Cento ...

  2. dll导出函数的两种方式的比较

    最初的网页链接已经挂了, 在此贴一个中间的转载链接 https://blog.csdn.net/zhazhiqiang/article/details/51577523 一 概要 vs中导出 dll的 ...

  3. 级联Cascade

    cascade分为两类: 1.JPA标准 2.Hibernate标准 JPA的方法使用JPA规范 如@OneToMany(cascade=CascadeType.ALL,mappedBy=" ...

  4. Android几种视频播放方式,VideoView、SurfaceView+MediaPlayer、TextureView+MediaPlayer,以及主流视频播放器开源项目

    简单的说下一Android的几种视频播放功能: 1.VideoView:最简单的视频播放 <FrameLayout xmlns:android="http://schemas.andr ...

  5. C#导出 Excel 时, 生成 CheckBox 控件

    在使用 Microsoft.Office.Interop.Excel 组件导出Excel 表格时,要把导出前的  CheckBox 控件一同导出到 excel 表格中,对于这个功能 看似很简单,但 M ...

  6. 1.1python解决数学建模之席位分配问题

    一:上代码 #比例法def rate_method(p,n):    lst =[] #保存各组席位数    sum_ =sum(p)    #人数和    k =0#临时变量    for i in ...

  7. Spring MVC参数封装传递

    在Spring MVC中,前端JSP页面可以传递  基本类型(int,String).实体类型.包装类型.数组类型.集合类型(List.map )等. 假如在传递的类型中有 Date类型的字段,需要在 ...

  8. zabbix3.x添加华为(93069306)网络设备详解

    转载自:https://www.cnblogs.com/yinzhengjie/p/6768006.html 前言: 欢迎加入:高级运维工程师之路 598432640 相信大家在看我的文章之前,也看过 ...

  9. 深入理解Java虚拟机读书笔记9----线程完全与锁优化

    九 线程完全与锁优化   1 Java语言中的线程完全         ---线程安全:当多个线程访问一个对象时,如果不用考虑这些线程在运行时环境下的调度和交替执行,也不需要进行额外的同步,或者在调用 ...

  10. pytorch 生成随机数

    在使用PyTorch做实验时经常会用到生成随机数Tensor的方法,比如: torch.rand() torch.randn() torch.normal() torch.linespace() 在很 ...