Как читать и писать из реестра без прав администратора_C # - PullRequest
0 голосов
/ 13 июня 2018

Мне нужно писать и читать ключи в реестре без режима администратора. Сначала я хочу знать, возможно ли это сделать?

Пожалуйста, найдите код ниже (он работает нормально, когда Visual Studio открывается в режиме администратора)

Запись

RegistryKey key = Registry.LocalMachine.OpenSubKey("Software", true);

key.CreateSubKey("AppName");
key = key.OpenSubKey("AppName", true);

key.CreateSubKey("AppVersion");
key = key.OpenSubKey("AppVersion", true);

key.SetValue("myval", "677");
key.Close();  

Чтение

RegistryKey key = Registry.LocalMachine.OpenSubKey("Software", true);

  key.CreateSubKey("AppName");
  key = key.OpenSubKey("AppName", true);
   //if it does exist, retrieve the stored values  
  if (key != null)
  {
    string s = (string)key.GetValue("myval");
    Console.Read();
    key.Close();
   }  

Пожалуйста, любой предложит способ сделать это.(Я также попытался добавить строку ниже)

Ошибка :

ClickOnce не поддерживаетУровень выполнения запроса 'requireAdministrator'.

1 Ответ

0 голосов
/ 11 декабря 2018

Вот ответ на , как писать в реестре без администратора

Чтение осуществляется с помощью опции RegistryKeyPermissionCheck.ReadSubTree

    RegistryKey baseRegistryKey = RegistryKey.OpenBaseKey(baseKey, RegistryView.Registry64);
    RegistryKey subRegistryKey = baseRegistryKey.OpenSubKey(subKey, RegistryKeyPermissionCheck.ReadSubTree);
    if (subRegistryKey != null)
    {
        object value64 = subRegistryKey.GetValue(value);
        if (value64 != null)
        {
            baseRegistryKey.Close();
            subRegistryKey.Close();
            return value64;
        }
        subRegistryKey.Close();
    }            
    baseRegistryKey.Close();

Затем выполните то же самоес RegistryView.Registry32

...