创建开机启动项快捷方式

参考原文链接:http://www.cnblogs.com/08shiyan/archive/2011/09/29/2195633.html

1.首先要添加引用. 
添加引用的方法非常简单,右击你的项目并选择添加引用, 
选择 COM 选项卡并选择 Windows Script Host Object Model 
2.引用命名空间 
using System.Runtime.InteropServices;//互动服务 
using IWshRuntimeLibrary;
 
3.创建开机启动项快捷方式(注释中有详细说明) 

 /// <summary>
        /// 生成开机启动项快捷方式
        /// </summary>
        /// <param name="IsAtuoRun">true:设置开机启动;false:不开机启动</param>
        /// <returns></returns>
        public static bool SetAutoStart(bool IsAtuoRun)
        {
            bool bOk = false;
            //开机启动项下的快捷方式路径
            string LnkPath = Environment.GetFolderPath(Environment.SpecialFolder.Startup) + "//NeoLink_AirPlaneDispatch.lnk";
            if (IsAtuoRun)
            {
                //实例化WshShell对象 
                WshShell shell = new WshShell();
                //通过该对象的 CreateShortcut 方法来创建 IWshShortcut 接口的实例对象 
                IWshShortcut shortcut = (IWshShortcut)shell.CreateShortcut(LnkPath);
                //设置快捷方式的目标所在的位置(源程序完整路径) 
                shortcut.TargetPath = System.Reflection.Assembly.GetExecutingAssembly().Location;
                //应用程序的工作目录 
                //当用户没有指定一个具体的目录时,快捷方式的目标应用程序将使用该属性所指定的目录来装载或保存文件。 
                shortcut.WorkingDirectory = System.Environment.CurrentDirectory;
                //目标应用程序窗口类型(1.Normal window普通窗口,3.Maximized最大化窗口,7.Minimized最小化) 
                shortcut.WindowStyle = 1;
                //快捷方式的描述 
                shortcut.Description = "无线调度";
                //可以自定义快捷方式图标.(如果不设置,则将默认源文件图标.) 
                //shortcut.IconLocation = System.Environment.SystemDirectory + "\\" + "shell32.dll, 165"; 
                //设置应用程序的启动参数(如果应用程序支持的话) 
                //shortcut.Arguments = "/myword /d4s"; 
                //设置快捷键(如果有必要的话.) 
                //shortcut.Hotkey = "CTRL+ALT+D"; 
                //保存快捷方式 
                shortcut.Save();
                bOk = true;
            }
            else
            {
                //删除开机启动项的快捷方式
                System.IO.File.Delete(LnkPath);
                bOk = true;
            }
            return bOk;
        }

Environment.SpecialFolder.Startup ,这里可设置其他系统目录下的位置。

SpecialFolder:

 // 摘要:
        //     指定用于检索系统特殊文件夹的目录路径的枚举常数。
        [ComVisible(true)]
        public enum SpecialFolder
        {
            // 摘要:
            //     逻辑桌面,而不是物理文件系统位置。
            Desktop = 0,
            //
            // 摘要:
            //     包含用户程序组的目录。
            Programs = 2,
            //
            // 摘要:
            //     用作文档的公共储存库的目录。
            Personal = 5,
            //
            // 摘要:
            //     “我的电脑”文件夹。
            MyDocuments = 5,
            //
            // 摘要:
            //     用作用户收藏夹项的公共储存库的目录。
            Favorites = 6,
            //
            // 摘要:
            //     对应于用户的“启动”程序组的目录。
            Startup = 7,
            //
            // 摘要:
            //     包含用户最近使用过的文档的目录。
            Recent = 8,
            //
            // 摘要:
            //     包含“发送”菜单项的目录。
            SendTo = 9,
            //
            // 摘要:
            //     包含“开始”菜单项的目录。
            StartMenu = 11,
            //
            // 摘要:
            //     “My Music”文件夹。
            MyMusic = 13,
            //
            // 摘要:
            //     用于物理上存储桌面上的文件对象的目录。
            DesktopDirectory = 16,
            //
            // 摘要:
            //     “我的电脑”文件夹。
            MyComputer = 17,
            //
            // 摘要:
            //     用作文档模板的公共储存库的目录。
            Templates = 21,
            //
            // 摘要:
            //     目录,它用作当前漫游用户的应用程序特定数据的公共储存库。
            ApplicationData = 26,
            //
            // 摘要:
            //     目录,它用作当前非漫游用户使用的应用程序特定数据的公共储存库。
            LocalApplicationData = 28,
            //
            // 摘要:
            //     用作 Internet 临时文件的公共储存库的目录。
            InternetCache = 32,
            //
            // 摘要:
            //     用作 Internet Cookie 的公共储存库的目录。
            Cookies = 33,
            //
            // 摘要:
            //     用作 Internet 历史记录项的公共储存库的目录。
            History = 34,
            //
            // 摘要:
            //     目录,它用作所有用户使用的应用程序特定数据的公共储存库。
            CommonApplicationData = 35,
            //
            // 摘要:
            //     “System”目录。
            System = 37,
            //
            // 摘要:
            //     “Program files”目录。
            ProgramFiles = 38,
            //
            // 摘要:
            //     “My Pictures”文件夹。
            MyPictures = 39,
            //
            // 摘要:
            //     用于应用程序间共享的组件的目录。
            CommonProgramFiles = 43,
        }
原文地址:https://www.cnblogs.com/luofuxian/p/2575048.html