2011-01-07 5 views
1

SituationAnnulation d'un programme d'installation InnoSetup

Lors de l'installation de notre produit que je perçois si nos programmes sont encore en cours d'exécution (d'une installation précédente) en utilisant CheckForMutexes. Si nos programmes sont toujours en cours d'exécution, j'ouvre une boîte de message (en utilisant MsgBox) qui indique à l'utilisateur de fermer les programmes. Si l'utilisateur clique sur OK et n'a pas fermé nos programmes, la même boîte de message s'affiche. Je voudrais afficher un bouton d'annulation dans le MsgBox qui annule l'installation, ce qui serait souhaitable dans le cas où l'utilisateur ne veut pas fermer les programmes en cours d'exécution.

Question

Comment puis-je annuler une installation InnoSetup programme?

Merci à l'avance

Répondre

1

Jetez un oeil à InitializeSetup et Abort dans le Inno Setup aide. La fonction Abort permet à l'installation de quitter.

+0

lien pertinent: http://www.jrsoftware.org/ishelp/topic_isxfunc_abort.htm – Bernard

+0

Cela ne quitte pas la configuration que si elle est appelée à partir de l'intérieur d'une fonction d'événements spécifiques, comme InitializeSetup, InitializeWizard ou CurStepChanged, qui n'est pas le cas. – jachguate

0

Appelez la méthode WizardForm.Close().

Il demandera à l'utilisateur si elle veut vraiment annuler l'installation.

procedure ExitSetup; 
begin 
    WizardForm.Close; 
end; 
+0

Cela ne fonctionnera pas si l'assistant n'a pas encore été démarré –

+0

@Tamir, veuillez lire la question, les états OP vérifient les programmes en cours d'exécution, et il n'y a aucun moyen de vérifier cela avant le démarrage de l'assistant, si j'ai raison. – jachguate