2013-09-11 4 views
0

Как добавить/изменить ключи реестра OEMInformation с помощью C#?Изменение OEM-информации в C#

Я пытался использовать этот код, но он возвращает ошибку:

RegistryKey myKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\\Microsoft\Windows\CurrentVersion\OEMInformation", true); 
myKey.SetValue("manufacturer", "Asus", RegistryValueKind.String); 

Эта ошибка возвращается:

Необработанное исключение типа «System.Security.SecurityException» произошло в mscorlib.dll

Дополнительная информация: Запрошенный доступ к реестру не допускается.

EDIT:
Также попробовал этот код:

Microsoft.Win32.RegistryKey key; 
    key = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(@"SOFTWARE\\Microsoft\Windows\CurrentVersion\OEMInformation"); 
    key.SetValue("manufacturer", "Asus"); 
    key.Close(); 

но этот код возвращает также ошибку:
Необработанное исключение типа 'System.UnauthorizedAccessException' произошло в mscorlib.dll

Дополнительная информация: не удается записать в раздел реестра.

И мое приложение уже работает как администратор, используя этот код:

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" /> 
+0

Возможный дубликат [Как заставить мое приложение .NET работать под управлением Windows 7?] (Http://stackoverflow.com/questions/2818179/how-to-force-my-net-app-to-run -as-administrator-on-windows-7) –

+0

Вы добавили код, но действительно ли он работает как администратор? Вам нужно проверить настройки проекта, чтобы он фактически использовал файл манифеста, в котором вы указываете строку 'RequireAdministrator'. –

+0

Также, если вы щелкните правой кнопкой мыши по ключу и перейдите к «Разрешениям», это покажет, что [Администраторы имеют полные права доступа к ключу] (http://i.stack.imgur.com/5K0o3.png)? –

ответ

1

Visual Studio также должен работать в режиме администратора.

0

Вы должны запустить программу как Администратор, чтобы получить доступ (изменить) LocalMachine. (., Например, добавить манифест вашей программы http://msdn.microsoft.com/en-us/library/bb756929.aspx)

Или получить доступ к каждому в этом конкретном ключе реестра (http://technet.microsoft.com/en-us/library/cc728310(v=ws.10).aspx)

редактирование: Убедитесь, что ваша программа запуска с повышенными привилегиями. Я создал простую консольную программу и работаю как шарм.

Дополнительно к вашему редактированию: Если открытый ключ реестра только с одним параметром, означает, что вы хотите только читать (http://msdn.microsoft.com/en-us/library/z9f66s0a.aspx) Таким образом, вы должны использовать его, как и раньше (с двумя параметров и установите второй «истину»)

Смежные вопросы