Как установить значение RegistryKey в Visual Studio? - PullRequest
0 голосов
/ 15 января 2019

У меня есть проект, и я пытаюсь запустить установщик на новом компьютере, чтобы проверить мое приложение WPF, но раздел реестра не создается автоматически. Я попытался добавить его вручную, но я не знаю, почему он не работает, я уверен, что не правильно добавляю ключ. Также я запутался, так как это новый компьютер, как мне добавить что-то, что автоматически создаст путь? Тот, который я создаю, выглядит примерно так:

[VS Image] [1]

My Registery

1 Ответ

0 голосов
/ 15 января 2019

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:

bool result = CanSetRegKeyValue("SOFTWARE\\Policies\\Microsoft\\Windows\\safer\\codeidentifiers\\", "DefaultLevel");
...