You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

WPF应用移除开机自动启动功能的实现方法咨询

移除WPF应用开机自启注册表项的解决方案

嘿,你要移除之前添加的开机自启项其实很简单,不用找什么RemoveKey方法——直接用RegistryKeyDeleteValue方法就能搞定,和你添加时的逻辑完全对应。

具体实现代码

你只需要打开同一个注册表子项,然后删除你之前设置的那个程序名称对应的键值就行:

using Microsoft.Win32;
using System.Reflection;

// 以可写模式打开开机启动项的注册表键
using (RegistryKey key = Registry.CurrentUser.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true))
{
    if (key != null)
    {
        string appName = Assembly.GetExecutingAssembly().GetName().Name;
        // 先检查键值是否存在,避免删除不存在的项抛出异常
        if (key.GetValue(appName) != null)
        {
            key.DeleteValue(appName);
            // 可选:这里可以添加提示用户移除成功的逻辑,比如弹窗提示
        }
    }
}

关键细节说明

  • using语句包裹RegistryKey,能确保操作完成后自动释放注册表资源,避免句柄泄漏。
  • 删除前判断键值是否存在,能有效避免因为键值已被删除/不存在而抛出ArgumentException异常。
  • 我们操作的是CurrentUser下的注册表项,不需要管理员权限,和你之前添加自启项的逻辑一致,对用户更友好。

验证移除是否生效

你可以手动打开注册表编辑器(按下Win+R,输入regedit回车),导航到HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Run,看看你的应用名称对应的键值是否已经消失——如果没了就说明移除成功啦。

内容的提问来源于stack exchange,提问作者user2908206

火山引擎 最新活动