Я нахожу странное поведение с модулем .NET, обращаясь к Windows Registry, используя класс RegistryKey.Доступ к реестру Windows с использованием .NET?
Например, я написал .NET-модуль testcom.dll, который обращается к реестру. Этот файл testcom.dll используется как для 32-разрядного приложения, так и для 64-разрядного приложения. Мое требование - получить значение regkey (путь HKEY_LOCAL_MACHINE\SOFTWARE\Test\MyParameters
и имя ключа Age
). Этот ключ «Возраст» будет находиться в 32-битном реестре на 32-битных машинах и 64-разрядном реестре (не WOW64) на 64-битных машинах.
На 64-битной машине, когда 32-разрядное приложение использует testcom.dll, поиск ключа «Возраст» выполняется в реестре WOW64. Когда 64-разрядное приложение использует testcom.dll, поиск ключа «Возраст» выполняется в 64-разрядном реестре.
Мое требование состоит в том, чтобы прочитать ключ в 64-битном реестре на 64-разрядных машинах, независимо от того, какое приложение использует файл testcom.dll. Как я могу это сделать?
Thats odd. Когда я однажды написал приложение, которое искал ключи и значения в реестре, мне пришлось вручную изменить путь для 32-разрядных ключей приложения при работе в 64-разрядной ОС. Не могли бы вы разместить какой-нибудь код? Чтобы узнать, отличается ли мой метод загрузки ключей от моего? –
Также приложение было 32-битным приложением. По умолчанию он не искал WOW64. –