C#通过写注册表设置程序随系统启动

Posted lfq761204

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#通过写注册表设置程序随系统启动相关的知识,希望对你有一定的参考价值。

要将编写的程序设置成随系统启动,可以通过读写注册表操作实现。有几个要注意的地方:

一是引入Microsoft.Win32这个命名空间,此空间用来提供操作注册表的类—— Registry和RegistryKey;

二是在win7、win10等系统中,系统会拒绝对注册表“LOCAL_MACHINE”的操作,提示“对注册表项“HKEY_LOCAL_MACHINE\\...”的访问被拒绝。”这时可以通过对“HKEY_CURRENT_USER”的操作实现对当前用户的随系统启动功能。

三是在“HKEY_CURRENT_USER”中,设置随系统启动的地址在“HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run”中。

代码如下:

using System.Windows.Forms;
using Microsoft.Win32;


    private void SetAutoRun() {
        //获取当前应用程序的可执行文件路径(包括可执行文件名称)
        //为了避免路径中的“/”和“\\”不统一,所以通过Replace函数统一成“\\”
        string appPath = Application.ExecutablePath.Replace('/','\\\\');
        //获取文件名
        string appName = appPath.Substring(appPath.LastIndexOf("\\\\")+1);
        //通过在注册表系统启动项“HKEY_CURRENT_USER\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run”中写入当前程序
        RegistryKey rKey = Registry.CurrentUser.CreateSubKey("SOFTWARE\\\\Microsoft\\\\Windows\\\\CurrentVersion\\\\Run");
        rKey.SetValue(appName,appPath);
    }

 

以上是关于C#通过写注册表设置程序随系统启动的主要内容,如果未能解决你的问题,请参考以下文章

C#通过写注册表设置程序随系统启动

C#实现程序开机启动

C#开机自动启动程序代码

C#写的VSTO插件, 怎么通过修改注册表来注册?

C# 定时自动执行程序

C#如何设置程序开机自启动