代码改变世界

C# Winform创建桌面快捷方式并开机启动

2010-10-09 08:50  摇滚互联网  阅读(999)  评论(1)    收藏  举报

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

首先要添加引用 Windows Script Host Object Model的类库(COM 选项卡)

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

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);