Как получить значение реестра в Inno Setup, если оно использует только имя по умолчанию? - PullRequest
8 голосов
/ 27 мая 2009

Я пытаюсь получить каталог установки приложения из реестра Windows (в данном случае Google Sketchup) с помощью сценариев Inno Setup для Pascal, чтобы я мог установить там плагин.

Ключ реестра не имеет имени, он просто имеет "(по умолчанию)" в Regedit.

Я пробовал это:

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

но значение не возвращается. Есть предложения?

1 Ответ

16 голосов
/ 28 мая 2009

Просто оставьте 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 или пустую строку "", функция извлекает тип и данные для неназванного значения ключа или значения по умолчанию, если оно есть.

...