Я создаю использование установщика InnoSetup и запись некоторых пользовательских обработчиков в a [Code]
раздел. В одном из обработчиков я хотел бы иметь возможность получить значение AppName
(или, потенциально, значение других параметров) определенный в [Setup]
раздел. Существует ли способ для меня сделать это? Я посмотрел, хотя документация, но я не нашел ничего, что позволило бы мне делать это. Наши файлы InnoSetup на самом деле сгенерированы нашим процессом сборки, который сшивает вместе фрагменты, которые распространены между всеми нашими программами и которые являются конкретной программой, таким образом, это было бы неудобно для определения констант в коде для каждой программы. Там какой-либо удобный способ состоит в том, чтобы сделать это?
Я ищу что-то как
MyString := ExpandConstant('{AppName}');
Кроме {AppName}
не определенная константа. Есть ли некоторый способ запросить для параметров, определенных в [Setup]
раздел?
Это константа времени сборки, а не значение времени установки. Таким образом, вы можете использовать надстройку Inno Setup Preprocessor для определения таких констант. (Вы можете легко установить его с помощью пакета QuickStart .)
Определите константу:
#define AppName "Excellent Foo App"
Используйте константу в [Setup]
:
AppName={#AppName}
И в коде Pascal, Я' m не совсем уверен в синтаксисе, но что-то вроде:
MyString := {#AppName}
Обновление: Я понял, что один из моих скриптов использует {# emit SetupSetting ("AppId")}
, что проще. Решение Брайана также обнаружило этот метод, и оно лучше.
Вдохновленный ответом Крейга, я просматривал документацию по препроцессору Inno Setup (в ISTool, недоступен в Интернете, насколько я обнаружил) и наткнулся на SetupSetting
в препроцессоре.
Ее можно использовать так:
MyString := '{#SetupSetting("AppName")}';
И до тех пор, пока секция [Setup]
появляется перед местом, где она используется (ISPP кажется только одним проходом ) и включает определение для AppName
, это даст желаемые результаты, без необходимости определять дополнительный макрос для каждого параметра, который мы хотим извлечь.