InstallShield LE: RegOpenKeyEx не удается в настраиваемом действии - PullRequest
2 голосов
/ 09 августа 2011

Мне нужно выполнить некоторые дополнительные настройки после установки, поэтому я создал консольное приложение smoll PostInstall.exe, которое должно выполнить эту работу. Мне нужно получить путь установки winamp из реестра.

Этот PostInstall.exe работает нормально, если я запускаю его один. Но если я использую его в настраиваемом действии «После регистрации продукта», я получаю сообщение об ошибке «Система не может найти указанный файл», возвращаемое функцией

DWORD kres  =  RegOpenKeyExW(HKEY_CURRENT_USER, L"Software\\Winamp",0, KEY_QUERY_VALUE, &hKey);

Я на 100% уверен, что ключ существует - я проверяю его перед началом установки. Кроме того, когда я запускаю PostInstall.exe вручную после установки, это удается.

Я попытался установить «Отложенное выполнение» и «Отложенное выполнение в контексте системы», но это не помогает.

Почему RegOpenKeyEx терпит неудачу в моем настраиваемом действии?

1 Ответ

1 голос
/ 22 августа 2011

Убедитесь, что установка не выполняется с правами другого пользователя. Таким образом, процесс пользовательских действий не будет выполняться для другого пользователя, у которого другой куст HKEY_CURRENT_USER.

Кроме того, попробуйте ввести текущего пользователя в свой пользовательский код и определить, ожидаете ли вы его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...