Создайте ключ реестра (non-WOW64) на 64 бита из приложения на 32 бита

У меня есть установщик Visual Studio, который создает некоторые ключи реестра:

HKEY_LOCAL_MACHINE\SOFTWARE\MyApp

но ключи реестра, которые это создает, автоматически появляются под Wow6432Node:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\MyApp

Как я игнорирую Wow6432Node при создании ключей реестра в моем коде C#, выполняемом msi?

13
задан James Newton-King 4 February 2010 в 03:12
поделиться

2 ответа

К вашему сведению, .NET 4.0 поддерживает это изначально. Пример:

RegistryBase = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64);

Затем вы можете использовать эту переменную RegistryBase для доступа ко всему в 64-битном представлении HKLM. И наоборот, Registry32 позволит 64-битному приложению получить доступ к 32-битному представлению реестра.

22
ответ дан 1 December 2019 в 21:52
поделиться

Взгляните на http://www.pinvoke.net/default.aspx/advapi32/regopenkeyex.html . Вам нужно будет использовать перенаправитель реестра и передать правильное значение для маски доступа. К сожалению, вам понадобится pInvoke.

1
ответ дан 1 December 2019 в 21:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: