WinForm 之 应用程序开机自启动设置方法

时间:2022-02-26 03:13:43

标签:

一、原理

  需要开机自启动的程序,需要将其启动程序的路径写到注册表中指定的文件夹下。

二、实现方式

  方法1:在生成安装程序时配置;

  方法2:在程序运行时动态配置。

三、在生成安装程序时配置

  1、右击安装编辑程序,在“视图”菜单中,选择“注册表”。依次打开键“HKEY_CURRENT_USER”→“Software”,如下图:

   

  2、右键点击“Software”键→“新建(N)”→“键(K)”,创建“Microsoft”键。

  3、如步骤2方式依次创建“Windows” 键→“CurrentVersion”键→“Run”键。

  4、右键Run,新建“字符串值”。为右侧的key命名(在注册表中不能重名),并在属性中指定它的value值,完成后如下图所示:

  

  注:[TARGETDIR]表示在程序的安装路径。

四、在程序运行时动态配置

  在程序运行时,通过调用如下方法实现开机启动。需引用命名空间 Microsoft.Win32。

/// <summary>   /// 修改程序在注册表中的键值   /// </summary>   /// <param name="flag">1:开机启动</param>   private void StartUp(string flag)   {       string path=Application.StartupPath;       string keyName = path.Substring(path.LastIndexOf("\\") + 1);       Microsoft.Win32.RegistryKey Rkey = Microsoft.Win32.Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run"true);          if (flag.Equals("1"))       {           if (Rkey == null)           {               Rkey = Microsoft.Win32.Registry.CurrentUser.CreateSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run");           }           Rkey.SetValue(keyName, path @"\PeisDoctorHZ.exe");       }       else       {           if (Rkey != null)           {               Rkey.DeleteValue(keyName, false);           }       }   }  

  注:该程序的启动项设置到HKEY_Current_User 下。如果想改在HKEY_LOCAL_MACHINE,只需将 CurrentUser 改为 LocalMachine,,即

Rkey = Microsoft.Win32.Registry.LocalMachine.CreateSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run");  

WinForm 之 应用程序开机自启动设置方法