/// <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(); } }
使用代码:
代码效果:
新闻热点
疑难解答