2010-10-19 5 views
0

est-il possible de démarrer une installation Inno, qui attend que le processus enfant a terminé? Le comportement par défaut des systèmes actuels est que l'installation démarre la configuration "réelle" dans le dossier temporaire et va plus loin dans la ligne de commande. Mon but est que le processus parent attende jusqu'à ce que l'enfant finisse de lire le code retour dans la variable errorlevel. J'ai fait un picture for better understandingPossibilité de synchroniser une installation avec Inno Setup et de lire le code retour

Ma deuxième question est comment Inno gère le setup exit codes. Où peuvent-ils lire une fois l'installation terminée? Si une erreur se produit des clics de configuration ou l'utilisateur annuler la variable env %errorlevel% est toujours 0.

Merci à l'avance

Répondre

0

L'exemple de code suivant appelle child.exe lors de l'étape post-install:

procedure CurStepChanged(CurStep: TSetupStep); 
var 
    ErrorCode: integer; 
begin 
    if (CurStep = ssPostInstall) then 
    begin 
    WizardForm.Hide; 
    ShellExec('open', 'child.exe', '', '', SW_SHOW, ewWaitUntilTerminated, ErrorCode); 
    WizardForm.Show; 
    if (ErrorCode <> 0) then 
    begin 
     // error handling 
    end; 
    end; 
end; 
+0

Désolé, mais ce n'est pas ce que je veux dire. Ce n'est pas mon propre processus d'enfant, mais le processus Inno-enfant. [Voir cette image de l'explorateur de processus] (http://img525.imageshack.us/img525/516/inno2.gif) – danny

1

Qu'est-ce que vous essayons de faire est une fonction de l'OS, pas vraiment InnoSetup. Utilisez ce qui suit pour faire ce que vous voulez à partir d'une invite de commande ou d'un fichier batch:

start /wait setup.exe 
echo %ERRORLEVEL% 
Questions connexes