11

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

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

我试过这个:

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

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

4

1 回答 1

19

只留下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 或空字符串“”,则函数检索键的未命名或默认值(如果有)的类型和数据。

于 2009-05-28T05:17:43.640 回答