Не удается прочитать некоторые значения из реестра - PullRequest
0 голосов
/ 31 октября 2011

В моем приложении на C # возникают проблемы с чтением некоторых разделов реестра,

RegistryKey key = Registry.LocalMachine.OpenSubKey("Software\\NameOfSoftware\\");

RegistryKey key1 = Registry.LocalMachine.OpenSubKey("Software\\NameOfSoftware\\Version1\\Databases");

RegistryKey key2 = Registry.LocalMachine.OpenSubKey("Software\\NameOfSoftware\\Version2\\Databases");

первый - это главный ключ, а key1 и key2 - это подразделы. Я могу читать ключ1, но не ключ2.

Я вижу оба ключа в реестре с помощью regedit. Забавно, если я так сделаю,

key.GetSubKeyNames()

Я получаю такой список,

Version1,
SomethingElse1
SomethingElse2

Где ключи SomethingElse - это ключи, которые я не вижу с помощью regedit? Версия 2 тоже явно отсутствует, но я вижу это с помощью regedit.

UPDATE: Так что уточнить кое-что. Ключ, который работал (Версия 1) уже был там. Версия 2 была добавлена, потому что я экспортировал ключ Version1, отредактировал файл, чтобы заменить Version1 версией 2, и импортировал его обратно. Итак, как я могу дублировать ключ без этой проблемы?

1 Ответ

1 голос
/ 31 октября 2011

Похоже, что вы можете запускать свое приложение C # в Vista (или выше, например, Win7 или WS2008) и работать с разрешениями реестра.Эта статья может быть полезна:

http://msdn.microsoft.com/en-us/magazine/cc982153.aspx

Возможно, вы также столкнулись с проблемой "Виртуализация реестра":

http://msdn.microsoft.com/en-us/library/aa965884.aspx

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