zoukankan      html  css  js  c++  java
  • 在ClickOnce应用程序中创建桌面快捷方式

    看到teamleader的博客里关于如何“在ClickOnce应用程序中创建桌面快捷方式 ”,本文对他的方式进行更简单的实现,为了文章完整,将他的文章拷贝过来了,见谅。如下是他文章的全文:

    -----------------------------------------------------------------------------------------------------------------

    在ClickOnce的发布选项中没有在桌面创建快捷方式的选项,而许多客户习惯于使用桌面快捷方式。
    大家都知道ClickOnce程序的实际路径是不固定的,每当程序更新到新版本的时候,启动位置都会改变,这样传统的快捷方式创建方式就不好用了。

    通过研究那个开始菜单中的快捷方式,我发现其实他就是一个文件,后缀是.appref-ms,而且里面的内容是文本格式,例如:
    http://zjj/WindowsApplication26/Win26.application#Win26.application, Culture=neutral, PublicKeyToken=6e8580a27fa3dbc7, processorArchitecture=msil
    可以看到,这里面没有存储实际的可执行文件的地址,是一个通用地址,即时有新版本发布,也一样好用。

    有了这个发现,创建桌面快捷方式就很简单了:在桌面上创建一个后缀为.appref-ms的文本文件即可。
    文本内容:
    1、在自己的开发机器上发布一下
    2、打开开始菜单,找到那个快捷方式文件,用记事本打开

    需要注意的是:文本的编码格式是Unicode

    --------------------------------------------------------------------------------------------------------------------

    通过自己写入文件太麻烦,最简单方式:在程序启动时,进行拷贝

    下面的是我的实现代码:

    private static void CreateDesktopShortCut()
            {
               
                
    string path = System.Environment.GetFolderPath(Environment.SpecialFolder.StartMenu);
                
    if (!path.EndsWith("\\"))
                {
                    path 
    += "\\";
                }
                path 
    += @"Programs\杭州派尔科技有限公司";
                
    if (System.IO.Directory.Exists(path))
                {
                    
    string desktop = System.Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
                    
    if (!desktop.EndsWith("\\"))
                    {
                        desktop 
    += "\\";
                    }
                    
    foreach (String file in System.IO.Directory.GetFiles(path))
                    {
                        System.IO.FileInfo fi 
    = new System.IO.FileInfo(file);
                        
    if (!System.IO.File.Exists(desktop + fi.Name))
                        {
                            fi.CopyTo(desktop 
    + fi.Name);
                        }
                    }
                }
            }
  • 相关阅读:
    215. Kth Largest Element in an Array
    214. Shortest Palindrome
    213. House Robber II
    212. Word Search II
    210 Course ScheduleII
    209. Minimum Size Subarray Sum
    208. Implement Trie (Prefix Tree)
    207. Course Schedule
    206. Reverse Linked List
    sql 开发经验
  • 原文地址:https://www.cnblogs.com/bookwormzju/p/1314213.html
Copyright © 2011-2022 走看看