我正在为一个使用Server的软件开发一个安装程序,所以我正在检查它是否使用下面的代码安装,运行在Windows7 x64和Inno安装程序5.5.4上(在Ansi和Unicode上都进行了测试):
function IsSQLServerInstalled(): Boolean;
var
version: string;
instances: String;
instancesList: TArrayOfString;
i: Integer;
begin
if (not RegKeyExists(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Microsoft SQL Server')) then begin
Result := False;
end
else begin
RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Microsoft SQL Server', 'InstalledInstances', instances);
// code goes on...这里没有一个问题,因为代码编译得很好,但是当我调试时," instances“变量保持为空白,尽管我有这个MULTI_SZ寄存器值,其中包含我的机器上安装的实例。在它应该返回"INSTANCE1 INSTANCE2“之类的东西的地方,它只给我一个”空白“
RegKeyExists函数也执行得很好,所以else块被正常地击中了。
我做错什么了?
发布于 2014-05-27 13:00:32
我必须使用 function,它在MULTI_SZ值上正常工作。谢谢你们所有人。
https://stackoverflow.com/questions/23890029
复制相似问题