Способ записи в реестре - PullRequest
3 голосов
/ 08 мая 2011

работает на C # оконном приложении. Я хочу писать в реестре. Я знаю, как писать в реестре. Я использую приведенный ниже синтаксис для записи в реестре.

        Microsoft.Win32.RegistryKey key;
        key = Microsoft.Win32.Registry.CurrentUser.cre.CreateSubKey("asb");
        key.SetValue("asb", "Isabella");
        key.Close();

Но проблема в том, что я не могу писать вуказанное местоположение. я хочу написать в расположении ниже

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Run

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run

В этом месте хотите добавить строку value = "abc" и ValueData = "efd " Если у вас есть какие-либо вопросы, пожалуйста, спрашивайте. Спасибо заранее.

Ответы [ 3 ]

8 голосов
/ 08 мая 2011

Для HKCU:

string keyName = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Run";
RegistryKey rk = Registry.CurrentUser.OpenSubKey(keyName, true);
rk.SetValue("abc", "efd");
rk.Close();

Для HKLM вам нужно сделать это с правами администратора. Это требует добавления манифеста в вашу программу для вызова приглашения UAC в Vista или Win7.

2 голосов
/ 08 мая 2011
RegistryKey reg = Registry.LocalMachine.
                  OpenSubKey(@"Software\Microsoft\Windows\CurrentVersion\Run", true);

// set value of "abc" to "efd" 
reg.SetValue("abc", "efd", RegistryValueKind.DWord);

// get value of "abc"; return 0 if value not found 
string value = (string)reg.GetValue("abc", "0");
2 голосов
/ 08 мая 2011

Запись в HKEY_LOCAL_MACHINE требует прав администратора. И если вы работаете в Windows Vista или 7, это также требует повышения прав, чтобы вы не столкнулись с UAC (контролем учетных записей).

Лучше всего только для записи в этот раздел реестра во время установки (где у вас будут полные права администратора). Вы должны только прочитать с него, как только ваше приложение установлено.

Сохраните все обычные настройки в HKEY_CURRENT_USER. Используйте Registry.CurrentUser поле , чтобы сделать это. Или, что еще лучше, полностью отмените реестр и сохраните настройки приложения в файле конфигурации . Visual Studio имеет встроенную поддержку для этого, это очень просто сделать из C #. Реестр больше не является рекомендуемым способом сохранения состояния приложения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...