-1

我有一个项目,我正在尝试在新电脑上运行安装程序来测试我的 WPF 应用程序,但不会自动创建注册表项。我试过手动添加它,但我不知道为什么它不起作用,我确定我没有以正确的方式添加密钥。我也很困惑,因为它是一台新电脑,我如何添加一些会自动创建路径的东西?我正在创建的图像是这样的:

[对比图片][1]

我的注册表

4

1 回答 1

0

HKLM——你有管理员权限吗?真的有特权吗?

如何测试您是否有足够的权利写信给 HKLM(只需致电OpenSubKey):

public bool CanSetRegKeyValue(string path, string valueName, RegistryKey registry = null)
{
    bool result = true;

    try
    {
        RegistryKey registryKey = null;

        if (registry == null)
        {
            registryKey = Registry.LocalMachine;
        }

        using (RegistryKey key = registryKey.OpenSubKey(path, true))
        {
            result = key != null;
        }
    }
    catch (NullReferenceException)
    {
        result = false;
    }
    catch (SecurityException)
    {
        result = false;
    }

    return result;
}

和用法示例,检查DefaultLevel节点 HKLM\SOFTWARE\Policies\Microsoft\Windows\safer\codeidentifiers 下对 Key 的写入能力:

bool result = CanSetRegKeyValue("SOFTWARE\\Policies\\Microsoft\\Windows\\safer\\codeidentifiers\\", "DefaultLevel");
于 2019-01-15T14:28:41.970 回答