删除注册表似乎没有生效

问题描述 投票:1回答:1

以下代码删除了注册表项,但从未进入for循环(它应该输入,因为它检查值是否被删除)为什么会发生这种情况? (我使用的是Windows 10 - 64位)当我导航到LocalMachine\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run时,我没有看到任何HackerOne扫描仪值! (我在创建它之后检查了)

    RegistryKey rk1 = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
    rk1.DeleteValue("HackerOne Scanner", false);
    if (Registry.GetValue("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", "true", true) == null)
    {
        try
        {
            RegistryKey rk = Registry.LocalMachine.OpenSubKey("SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", true);
            rk.SetValue("HackerOne Scanner", Application.ExecutablePath);
        }
        catch { MessageBox.Show("Admin Rights Are Required"); Application.Exit(); }
    }
c# registry startup
1个回答
1
投票
Registry.GetValue("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", "true", true)

当找不到值时返回true,而不是null,因为您将true作为默认值传递。但是您可以将null作为默认值传递。

Registry.GetValue("HKEY_LOCAL_MACHINE\\SOFTWARE\\Microsoft\\Windows\\CurrentVersion\\Run", "true", null);

但请注意,您正在搜索的值不是您设置的值,true vs "HackerOne Scanner"。这可能不是故意的。

© www.soinside.com 2019 - 2024. All rights reserved.