首页 > 学院 > 开发设计 > 正文

[C#]设置或取消开机启动(注册表形式)

2019-11-14 16:37:46
字体:
来源:转载
供稿:网友
        /// <summary>        /// 设置程序开机启动_注册表形式        /// 参考        /// http://syxc.VEvb.com/blog/673972        /// http://zouqinghua11111.blog.163.com/blog/static/67997654201242334620628/        /// http://stackoverflow.com/questions/5089601/run-the-application-at-windows-startup        /// 其他        /// 管理员权限问题:        /// 在打开的工程中,看下PRoperties 下面是否有app.manifest 这个文件,如果没有,右击工程在菜单中选择“属性”,        /// 选中"Security",在界面中勾选"Enable ClickOnce Security Settings"后,在Properties下就有自动生成app.manifest文件。        /// 打开app.manifest文件,将        /// <requestedExecutionLevel level="asInvoker" uiaccess="false" />        /// 改为        /// <requestedExecutionLevel level="requireAdministrator" uiAccess="false" />        /// 然后在"Security"中再勾去"Enable ClickOnce Security Settings"后,重新编译即可。        /// </summary>        /// <param name="path">需要开机启动的exe路径</param>        /// <param name="keyName">注册表中键值名称</param>        /// <param name="set">true设置开机启动,false取消开机启动</param>        public static void StartupSet(string path, string keyName, bool set)        {            RegistryKey _reg = Registry.LocalMachine;            try            {                RegistryKey _run = _reg.CreateSubKey(@"SOFTWARE/Microsoft/Windows/CurrentVersion/Run");                if (set)                {                    _run.SetValue(keyName, path);                }                else                {                    Object _value = _run.GetValue(keyName);                    Trace.WriteLine("StartupSet Finded :" + _value == null ? "Null" : _value);                    if (_value != null)                        _run.DeleteValue(keyName);                }            }            finally            {                _reg.Close();            }        }

使用代码:

image

image

代码效果:

image


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表