2014-02-13 1 views
0

Я пытаюсь получить переменную среды во время установки с помощью RegQueryStringValue,Получить переменную окружения с помощью RegQueryStringValue в Inno Setup

Я использую следующий код

[Setup] 
DefaultGroupName="{code:GetPath}" 

[Code] 
function GetPath(Value: String): String; 
var 
    OrigPath: string; 
begin 
    if RegQueryStringValue(HKLM, 'SYSTEM\CurrentControlSet\Control\Session Manager\Environment', 'GCC', OrigPath) then 
    Result := OrigPath; 
end; 

Но установщик дает мне ошибку во время установки ,

Может ли кто-нибудь сказать мне, почему или что я могу использовать вместо этого?

+1

Какая ошибка? Почему бы просто не использовать '{% GCC}'? Этот метод получит фактическое текущее значение, а не значение, хранящееся в реестре, для следующей загрузки Explorer. Вы также можете хотеть, чтобы tp предоставил значение по умолчанию, если оно не выйдет. – Deanna

+0

Когда я использую DefaultGroupName = "{% GCC}", он говорит, что я должен ввести имя папки! даже если это значение: C: \ MinGW \ bin \ gcc.exe в системной переменной. – user2333346

+0

ОК? в чем проблема? 'C: \ MinGW \ bin \ gcc.exe' - это имя файла. 'DefaultGroupName' ожидает имя группы меню. Использование 'C: \ MinGW \ bin \ gcc.exe' для этого не имеет смысла. – Deanna

ответ

3

В этом вопросе вы пытаетесь использовать DefaultGroupName вместо DefaultDirName, что вызывает ошибки.

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