当值仅使用默认名称时,如何在Inno Setup中获取注册表值?

时间:2009-05-27 04:35:17

标签: windows registry inno-setup pascal

我正在尝试使用Inno Setup的Pascal脚本从Windows注册表(本例中为Google Sketchup)获取应用程序的安装目录,以便我可以在那里安装插件。

注册表项没有名称,在Regedit中只有“(默认)”。

我试过了:

RegQueryStringValue( HKLM, 'SOFTWARE\Google\Google Sketchup 6', '(Default)', pluginLoc );

但它不会返回值。有什么建议吗?

1 个答案:

答案 0 :(得分:16)

只需将SubKeyName留空即可:

[Code]
function InitializeSetup(): Boolean;
var
  V: string;
begin
  if RegQueryStringValue(HKLM, 'SOFTWARE\Google\Google Sketchup 6', '', V) then
    MsgBox('Value is "' + V + '"', mbInformation, MB_OK);
  Result := TRUE;
end;

基础API调用的匹配文档适用于 RegQueryValueEx() ,其中声明:

  

注册表值的名称。

     

如果lpValueName为NULL或空字符串“”,则该函数检索密钥的未命名或默认值的类型和数据(如果有)。