InstallShield LE:RegOpenKeyEx在自定义操作中失败

时间:2011-08-09 11:44:48

标签: registry installshield custom-action

我需要在安装后执行一些额外的配置,所以我创建了一个smoll PostInstall.exe控制台应用程序,它应该完成这项工作。我需要从注册表中获取winamp安装路径。

如果我单独运行它,这个PostInstall.exe工作正常。但是如果我在自定义操作“After Register Product”中使用它,我会从函数返回错误“系统找不到指定的文件”

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

我100%确定密钥存在 - 我在启动安装之前验证它。此外,当我在安装后手动运行PostInstall.exe时,它会成功。

我试图设置“延迟执行”和“系统上下文中的延迟执行”但是 没有用。

为什么RegOpenKeyEx在自定义操作中失败?

1 个答案:

答案 0 :(得分:1)

确保未在其他用户帐户下提升安装。这样,您的自定义操作流程将不会针对具有不同HKEY_CURRENT_USER配置单元的其他用户执行。

另外,尝试将当前用户放入自定义代码中,并确定它是否是您期望的用户。