Как получить 64-битное настольное приложение Windows для чтения wow6432node

331
user204427

Я установил приложение для рабочего стола Windows. Установщик - Inno Setup, и он поместил мой лицензионный ключ для приложения в узел wow6432. Но когда я запускаю приложение, оно говорит мне, что не может найти лицензию. Могу ли я сделать что-нибудь, чтобы приложение нашло лицензию?

0
Если это не 32-разрядное приложение, оно не сможет прочитать этот ключ. Ramhound 5 лет назад 0

1 ответ на вопрос

3
Ian Boyd

Вы ничего не можете сделать, чтобы приложение работало.

Что должно произойти, так это то, что разработчик приложения, если он знает, что лицензия всегда будет в 32-битном реестре, должен изменить свой вызов RegOpenKeyEx от

RegOpenKeyEx(HKEY_CURRENT_USER, ...); 

в

RegOpenKeyEx(HKEY_CURRENT_USER | KEY_WOW64_32KEY, ...); 

Или 32-разрядный установщик должен поместить информацию о лицензии в 64-разрядный реестр, изменив:

RegOpenKeyEx(HEKY_CURRENT_USER, ...) 

в

RegOpenKeyEx(HKEY_CURRENT_USER | KEY_WOW64_64KEY, ...); 

Поскольку ни одна из этих вещей не находится под вашим контролем; Вы должны просто скопировать информацию о лицензии из 32-битного реестра в 64-битный реестр самостоятельно, используя RegEdit.

Читатели с правами суперпользователя не очень хорошо знакомы с Win32 API и флагами or-ed. Добавьте некоторые объяснения старой школы, чтобы читатели могли понять;) Biswapriyo 5 лет назад 0
@Biswapriyo Действительно первое предложение отвечает на это; и отражает то, что вы сказали. Ian Boyd 5 лет назад 0
@Biswapriyo - Если читатель не знаком с API-интерфейсами Win32, он должен учиться. Этот ответ правильный. Я не вижу способа заставить больше людей понять это. В подобных случаях требуется знание предмета. Ramhound 5 лет назад 1