C# Не могу получить доступ к некоторым значениям реестра
Мне нужно прочитать значение по умолчанию HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Classes\CLSID{CF2CF428-325B-48d3-8CA8-7633E36E5A32}\InprocServer32
В моих опциях проекта "Prefer 32-Bit" не отмечен, а "Platform target" - "Любой процессор", я работаю в 64-битной операционной системе Windows-7.
Я попробовал все и прочитал МНОГО тем об этой проблеме, но я все еще не могу прочитать это значение.
Пожалуйста, вы можете написать реальный код?
Я старался,
RegistryKey LocalMachine32 = RegistryKey.OpenBaseKey(Microsoft.Win32.RegistryHive.LocalMachine, RegistryView.Registry32);
RegistryKey location = LocalMachine32.OpenSubKey(@"Software\Wow6432Node\Classes\CLSID\{CF2CF428-325B-48d3-8CA8-7633E36E5A32}\InprocServer32", true);
String myValue = location.GetValue("").ToString();
,
RegistryKey LocalMachine64 = RegistryKey.OpenBaseKey(Microsoft.Win32.RegistryHive.LocalMachine, RegistryView.Registry64);
RegistryKey location = LocalMachine64.OpenSubKey(@"Software\Wow6432Node\Classes\CLSID\{CF2CF428-325B-48d3-8CA8-7633E36E5A32}\InprocServer32", true);
String myValue = location.GetValue("").ToString();
,
RegistryKey LocalMachine64 = RegistryKey.OpenBaseKey(Microsoft.Win32.RegistryHive.LocalMachine, RegistryView.Registry64);
RegistryKey location = LocalMachine64.OpenSubKey(@"Software\Classes\CLSID\{CF2CF428-325B-48d3-8CA8-7633E36E5A32}\InprocServer32", true);
String myValue = location.GetValue("").ToString();
,
RegistryKey LocalMachine32 = RegistryKey.OpenBaseKey(Microsoft.Win32.RegistryHive.LocalMachine, RegistryView.Registry32);
RegistryKey location = LocalMachine32.OpenSubKey(@"Software\Classes\CLSID\{CF2CF428-325B-48d3-8CA8-7633E36E5A32}\InprocServer32", true);
String myValue = location.GetValue("").ToString();
Но не повезло:(
1 ответ
Насколько я знаю, вы не можете сделать это с помощью вызовов.NET Framework; В прошлом я использовал вызовы P/Invoke для методов RegOpenKeyEx, RegQueryValueEx и RegQueryValueEx из advapi32.dll для чтения из определенного реестра битности.
Вот статья с примером этого:
http://blogs.msdn.com/b/cumgranosalis/archive/2005/12/19/win64registrypart2.aspx
Изменить: причина, по которой это не работает в Windows 7 (наряду с другими потенциально полезными ресурсами) обсуждается здесь:
Как открыть ключ реестра WOW64 из 64-разрядного приложения.NET