
·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> 网站建设开发 >> ASP.NET网站开发 >> [C#]设置或取消开机启动(注册表形式)
/// <summary>
/// 设置程序开机启动_注册表形式
/// 参考
/// http://syxc.iteye.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();
}
}
使用代码:


代码效果:
