Installation 检查注册表项是否存在总是失败

Installation 检查注册表项是否存在总是失败,installation,nsis,Installation,Nsis,我正在尝试确定注册表项是否存在。我使用的是某人制作的宏,但它不能正确识别注册表项是否存在 它说某个密钥实际上并不存在。我用错了吗 我的代码,注册表项的路径是正确的: !insertmacro IfKeyExists "HKLM" "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME}\${APPNAME}" "Version" Pop $R0 MessageBox MB_OK "Exists: $R0" # alwa

我正在尝试确定注册表项是否存在。我使用的是某人制作的宏,但它不能正确识别注册表项是否存在

它说某个密钥实际上并不存在。我用错了吗

我的代码,注册表项的路径是正确的:

!insertmacro IfKeyExists "HKLM" "Software\Microsoft\Windows\CurrentVersion\Uninstall\${COMPANYNAME}\${APPNAME}" "Version"
Pop $R0
MessageBox MB_OK "Exists: $R0" # always is zero when shd be 1

通过对键发出读取操作(例如,
ReadRegStr
),然后使用Logiclib检查是否发生任何错误,可以更简单地解决此问题。从功能上讲,不存在的密钥相当于无法读取的密钥

确保您谈论的是正确的键(这意味着您需要注意WOW64分离和注册表虚拟化)使用