(转)Winform 创建桌面快捷方式并开机启动

来源:互联网 发布:软件移植 英文 编辑:程序博客网 时间:2024/05/17 23:19

快捷方式实质上是一个扩展名为 .LNK 的文件

方法如下:

首先要添加引用 (如图)

 

 

就是那个Windows Script Host Object Model的类库....

 

然后在程序中引入命名空间

using IWshRuntimeLibrary;

 有一些文件操作,所有要引入

using System.IO;

关键方法如下:

/// <summary>
/// 创建桌面快捷方式并开机启动的方法
/// </summary>
private void ShortcutAndStartup()
{
     
//获取当前系统用户启动目录
     string startupPath = Environment.GetFolderPath(Environment.SpecialFolder.Startup);
     
//获取当前系统用户桌面目录
     string desktopPath = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);

     FileInfo fileStartup 
= new FileInfo(startupPath + "//亿掌通.lnk");
     FileInfo fileDesktop 
= new FileInfo(desktopPath + "//亿掌通.lnk");

     
if (!fileDesktop.Exists)
     {
           WshShell shell 
= new WshShell();
           IWshShortcut shortcut 
= (IWshShortcut)shell.CreateShortcut(
                 Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory) 
+
                  
"//" + "亿掌通.lnk"
                  );
           shortcut.TargetPath 
= Application.StartupPath + "//" + "Upgrade.exe";//启动更新程序★
           shortcut.WorkingDirectory = System.Environment.CurrentDirectory;
           shortcut.WindowStyle 
= 1;
           shortcut.Description 
= "亿掌通";
           shortcut.IconLocation 
= Application.ExecutablePath;
           shortcut.Save();
      }

      
if (!fileStartup.Exists)
      {
            
//获取可执行文件快捷方式的全部路径
            string exeDir = desktopPath + "//亿掌通.lnk";
            
//把程序快捷方式复制到启动目录
            System.IO.File.Copy(exeDir, startupPath + "//亿掌通.lnk"true);
      }
}