Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > реестр


Автор: Wanderer2019 23.3.2005, 18:07
Здравствуйте! Подскажите пожалуйста как править реестр средствами C#? СПАСИБО! smile
Добавлено @ 18:09
когда делаю что то вроде :
Код

RegistryKey Reg1;
Reg1 = Registry.CurrentUser.OpenSubKey("Console");
Reg1.SetValue("Name", "Value"); 
Reg1.Close();

То выкидывает ошибку типа:
An unhandled exception of type 'System.UnauthorizedAccessException' occurred in mscorlib.dll
Additional information: Cannot write to the registry key.
smile

Автор: Дрон 23.3.2005, 18:24
Исправль вторую строку на
Код
Reg1 = Registry.CurrentUser.OpenSubKey("Console",true);

и будет тебе счастье smile

Автор: alexsoft2005 12.7.2007, 19:44
Доброго времени суток! 
Проблемка следующего характера:
Код

RegistryKey regKey = Registry.LocalMachine;
string PathReg = "System\\CurrentControlSet\\Services\\TCPip\\Parameters\\Interfaces"+"\\"+ComboBox1.Text;
regKey=regKey.OpenSubKey(PathReg);
string A = (string)regKey.GetValue("IPAddress");

Выдает исключение в 4 строке (поле IPAddress по данному пути присутствует)

Автор: mr.DUDA 12.7.2007, 19:55
Проверку regKey на null надо добавить после 3-й строки.

Автор: alexsoft2005 12.7.2007, 20:02
проблему не решает

Автор: Wanderer2019 12.7.2007, 21:51
Цитата(alexsoft2005 @  12.7.2007,  19:44 Найти цитируемый пост)
Выделить всёкод C#
RegistryKey regKey = Registry.LocalMachine;
string PathReg = "System\\CurrentControlSet\\Services\\TCPip\\Parameters\\Interfaces"+"\\"+ComboBox1.Text;
regKey=regKey.OpenSubKey(PathReg);
string A = (string)regKey.GetValue("IPAddress");


кажется мне нет такой ветки 
 "System\\CurrentControlSet\\Services\\TCPip\\Parameters\\Interfaces"

в любом случае сначала должно быть что нить вроде HKEY_CURRENT_USER или HKEY_LOCAL_MACHINE

возможно в этом проблема

тьфу е мое.. не заметил Registry.LocalMachine.
Тогда смотри в сторону существования определяемой тобой ветки.

Автор: mr.DUDA 12.7.2007, 21:57
Какое исключение выкидывает? Может не хватает пермишнов:
Код
using System;
using System.Security.Permissions;
using Microsoft.Win32;


// вот о чём речь
[assembly: RegistryPermissionAttribute(SecurityAction.RequestMinimum, All="HKEY_LOCAL_MACHINE")]

namespace ConsoleApplication1
{
    class Class1
    {
        static void Main()
        {
            RegistryKey key = Registry.LocalMachine.CreateSubKey(@"SOFTWARE\Мой раздел реестра");
            key.SetValue("bla-bla-bla", new byte[] {1,2,3,4});
        }
    }
}

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)