You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Inno Setup检测SQL Express失败:RegQueryStringValue返回False问题排查

问题

我尝试在Inno Setup中检测机器上是否安装了SQL Express,于是编写了以下代码:

res:= RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL', 'SQLEXPRESS', installPath); 

MsgBox('Value is "' + installPath + '"', mbInformation, MB_OK);

但installPath始终为空,res也一直返回False,请问问题出在哪里?

解决方案

出现该问题的常见原因及对应解决办法如下:

  • 32位/64位注册表重定向:若你的Inno Setup安装包是32位,在64位系统中访问HKLM\SOFTWARE会被自动重定向到HKLM\SOFTWARE\Wow6432Node,而64位SQL Express的实例信息存于原生HKLM\SOFTWARE路径。可改用HKLM64替代HKLM访问64位注册表,或在[Setup]段添加ArchitecturesInstallIn64BitMode=x64让安装包以64位模式运行。
  • 注册表键值名称不符:确认SQL Express的实例名称确实是SQLEXPRESS,自定义安装的实例可能使用其他名称。手动打开注册表编辑器,导航到HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\Instance Names\SQL路径,查看是否存在SQLEXPRESS键值。
  • 权限不足:运行安装包时没有足够的注册表读取权限,可右键以管理员身份运行安装包,或在脚本[Setup]段添加PrivilegesRequired=admin确保安装包以管理员权限启动。

内容的提问来源于stack exchange,提问作者nnmmss

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.19 07:14:56