2013-12-02 5 views
2

Я думал, что это проблема безопасности, но после нескольких попыток я больше не уверен.Не удается получить доступ к реестру после вызова GetSubkeyNames()?

Я пытаюсь прочитать имена подключений, а затем читать значения из подраздела, но я получаю «Запрошенный доступ к реестру не разрешен», но приложение работает как администратор. Ниже приведен мой код:

RegistryKey key = Registry.LocalMachine.OpenSubKey(@"SYSTEM\CurrentControlSet\Control\Class\{4D36E96D-E325-11CE-BFC1-08002BE10318}"); 
//string[] names = key.GetSubKeyNames(); //causes error at key.OpenSubkey below 
string[] names = new[] {"0000", "0001", "0002"}; 
foreach (string name in names) 
{ 
    string fname =key.OpenSubKey(name).GetValue("FriendlyName").ToString(); 
    string port =key.OpenSubKey(name).GetValue("AttachedTo").ToString(); 
    listView1.Items.Add(new ListViewItem(new[] {name, fname, port})); 
} 

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

ответ

0

ОК, как это ни странно, похоже, эта проблема возникает только при компиляции ее для Любая платформа. Изменение цели платформы проекта на x86 решило проблему.

Кроме того, оказалось, что мне даже не нужно иметь административный доступ для начала.

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