/// <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(); } }
使用代碼:
代碼效果:
新聞熱點
疑難解答