C#客户端(WinForm)开机自动启动实现
/// <summary> /// 修改程序在注册表中的键值 /// </summary> /// <param name="isAuto">true:开机启动,false:不开机自启</param> private void AutoStart(bool isAuto = true, bool showinfo = true) { try { if (isAuto == true) { RegistryKey R_local = Registry.CurrentUser;//RegistryKey R_local = Registry.CurrentUser; RegistryKey R_run = R_local.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run"); R_run.SetValue("应用名称", Application.ExecutablePath); R_run.Close(); R_local.Close(); } else { RegistryKey R_local = Registry.CurrentUser;//RegistryKey R_local = Registry.CurrentUser; RegistryKey R_run = R_local.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run"); R_run.DeleteValue("应用名称", false); R_run.Close(); R_local.Close(); } } catch (Exception) { if (showinfo) MessageBox.Show("您需要管理员权限修改", "提示"); } }
注:该程序的启动项设置到HKEY_Current_User 下,推荐。如果想改在HKEY_LOCAL_MACHINE,只需将CurrentUser改为LocalMachine,即
// 添加到 当前登陆用户的 注册表启动项 RegistryKey RKey = Registry.CurrentUser.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run"); RKey.SetValue("AppName", @"C:\AppName.exe"); // 添加到 所有用户的 注册表启动项 RegistryKey RKey = Registry.LocalMachine.CreateSubKey(@"SOFTWARE\Microsoft\Windows\CurrentVersion\Run"); RKey.SetValue("AppName", @"C:\AppName.exe");