Работа с реестром для 64-разрядных приложений
Рассмотрим следующую ситуацию. У вас есть 32-битное приложение, которое проверяет значение из ключа реестра HKEY_LOCAL_MACHINE\Software\MyApp. Если ключ не существует, то оно создает его и записывает туда "MyApp 32-bit". Теперь сделаем точно такое же 64-битное приложение, но будет записывать туда "MyApp 64-bit" . Запустите его и оно покажет вам строку "MyApp 64-bit". Оба приложения обращаются к одному и тому же ключу Реестра, но выводят разные значение. Это происходит потому, что Windows хранит разные копии ключей для 32-битных и 64-битных приложений и осуществляет автоматический редирект при обращении к Реестру. Как правило, для 32-разрядных приложений ключи реально хранятся в ветке Software\Wow6432Node . Например, вы установили ваше приложение, оно корректно работает с Реестром, но вы не можете найти ваши ключи в программе regedit.exe. В этом случае, ищите ваши ключи в ветке Software\Wow6432Node.
Данные редирект реестра не заметен и никак не мешает работе 32-разрядных приложений. Проблема возникнет, когда вы захотите установить 64-битное приложение. Так как, инсталляции CreateInstall являются 32-битными, то Windows автоматически осуществит редирект при чтении или записи в Реестр. Все команды CreateInstall для работы с Реестром имеют специальный чекбокс Доступ к 64-битному ключу для решения это проблемы.
Доступ к 64-битному ключу в команде
Если вы устанавливайте 64-разрядное приложение, то в командах Реестр - Получить значение , Реестр - Удалить и Реестр - Установить значение отмечайте чекбокс Доступ к 64-битному ключу.