Я знаю, что есть много сайтов об этом. Я тестировал разные идеи около 6 часов. Я пытаюсь получить 32-битное приложение для изменения 64-битного реестра. Мне нужно установить разрешения для HKLM \ Software \ Microsoft \ Windows \ Current Version \ Installer \ UserData \ Если вам интересно, почему, это потому, что наше программное обеспечение выдает ошибку, если разрешения неверны.C# 32bit app 64bit registry
Вот что я пытаюсь
static bool SetRegistryPermissions(string hkLmKey, string userAccount)
{
//this will force the app to see the 64bit registry instead of being redirected
RegistryKey localMachineX64View = RegistryKey.OpenBaseKey(RegistryHive.LocalMachine, RegistryView.Registry64);
RegistryKey rk = localMachineX64View.OpenSubKey(hkLmKey, true);
//This redirects to the Wow6432Node in the registry
//RegistryKey rk = Registry.LocalMachine.OpenSubKey(hkLmKey, true);
Программа работает нормально на тестовом ключе в WOW6432Node до изменения ключа к localMachineX64. Теперь я получаю исключение безопасности при отладке OpenSubKey.
Любые советы приветствуются и благодарны за ваше время.
P.S. Любые предложения для книг, содержащие хорошую информацию, записывающие разрешения NT на C#, будут бонусом.
Вы знаете, что это неправильное решение вашей проблемы? Стандартный пользователь не должен писать HKLM. –
Если это «неправильное» решение, как бы вы исправили эту проблему? Я ТОЛЬКО использую его, когда проблема исправит его и не позволит пользователю сделать это. –