Передача констант в качестве аргументов в Exec() INNO

Я создал установщик с помощью Inno Setup, в котором я запускаю исполняемый файл, созданный для создания небольшой службы внутри Windows XP. Мне нужно передать exe два аргумента - "-install" и путь к каталогу установки. У меня нет возможности расширить константу {app}, чтобы передать фактическое значение внутри {app}. Есть ли способ сделать это?

Спасибо


person Rishi    schedule 28.10.2010    source источник


Ответы (2)


Я не совсем понимаю, чего вы хотите, но, может быть, вы ищете функцию ExpandConstant?

person Andreas Rejbrand    schedule 28.10.2010
comment
Да, я знаю об ExpandConstant, но даже это не позволяет мне передать путь установки в качестве аргумента. Если я сделаю это Exec(ExpandConstant('{src}\Depends\myEXe.exe'), '-install ExpandConstant('{app}')', '', SW_SHOW, ewWaitUntilTerminated, ResultCode); он не будет помещать путь {app} в качестве аргумента. Вместо этого в качестве аргумента будет использоваться ExpandConstant({app}). Есть ли способ обойти это мой вопрос. надеюсь это понятнее - person Rishi; 30.10.2010
comment
@Rishi: Конечно, есть. ExpandConstant является частью строкового литерала! - person Andreas Rejbrand; 30.10.2010

Это должно работать:

[Run]
Filename: {app}\MyApp.exe; Parameters: "-install {app}";

Я сделал это перед использованием InnoSetup, и он помещает правильное значение для {app}.

Если у вас все еще есть проблемы, пожалуйста, опубликуйте свой код.

person mirtheil    schedule 28.10.2010
comment
Истинный. На данный момент я использую [Run] вместо функции Exec внутри [Code]. Мне просто интересно, знает ли кто-нибудь, как использовать функцию Exec для запуска exe и передать путь к приложению в качестве аргумента. - person Rishi; 30.10.2010
comment
В этом случае должно работать что-то вроде этого: Exec(ExpandConstant('{app}\MyApp.exe'), '-install ' + ExpandConstant('{app}') + '', '', SW_SHOW, ewWaitUntilTerminated, ResultCode ); - person mirtheil; 30.10.2010