2010-10-28 28 views
0

J'ai créé un programme d'installation en utilisant Inno Setup dans lequel j'exécute un exe que j'ai créé pour créer un petit service sous Windows XP. J'ai besoin de passer deux arguments à l'exe - "-install" et le chemin du répertoire d'installation. Je n'ai aucun moyen d'étendre la constante {app} pour passer la valeur réelle à l'intérieur de {app}. Y a-t-il un moyen de le faire?Passer des constantes comme arguments dans l'exécution d'INNO()

Merci

Répondre

1

Je ne comprends pas vraiment ce que vous voulez, mais peut-être que vous recherchez la fonction ExpandConstant?

+0

Oui, je connais ExpandConstant mais même cela ne me permet pas de passer le chemin d'installation comme argument. Si je fais cela Exec (ExpandConstant ('{src} \ Depends \ myEXe.exe'), '-install' ExpandConstant ('{app}') '', '', SW_SHOW, ewWaitUntilTerminated, ResultCode); il ne mettra pas le chemin {app} comme argument. Au lieu de cela, il mettra ExpandConstant ({app}) comme argument. Y at-il un moyen de contourner ceci est ma question. J'espère que c'est plus clair – Rishi

+1

@Rishi: Bien sûr que oui. 'ExpandConstant' est une partie de la chaîne littérale! –

1

Cela devrait fonctionner:

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

Je l'ai fait avant d'utiliser InnoSetup et met la valeur correcte pour {app}.

Si vous rencontrez toujours des problèmes, veuillez poster votre code.

+0

True. Pour l'instant, j'utilise [Run] au lieu de la fonction Exec dans [Code]. Je me demandais juste si quelqu'un savait comment utiliser la fonction Exec pour exécuter l'exe et passer le chemin de l'application comme argument – Rishi

+0

Dans ce cas, quelque chose comme ça devrait fonctionner: Exec (ExpandConstant ('{app} \ MyApp.exe') , '-install' '+ ExpandConstant (' {app} ') +' "',' ', SW_SHOW, ewWaitUntilTerminated, ResultCode); – mirtheil