2009-05-27 1 views
7

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

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

Я попытался это:

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

но не возвращает значение. Какие-либо предложения?

ответ

14

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

+0

спасибо. Он работает очень хорошо. – kraryal

+0

Это значение 'ValueName', а не' SubKeyName', которое должно быть пустым. – Maxence

Смежные вопросы