2010-07-21 2 views
3

Je me demande s'il est possible d'avoir le bouton "Annuler" de mon écran d'accueil complètement quitté l'installateur sans afficher le dialogue final "Installation interrompue". Je considère cela comme redondant lorsque l'utilisateur n'a même pas encore commencé l'installation. Je veux toujours que la boîte de dialogue s'affiche si l'utilisateur a annulé une installation a déjà été démarrée, mais pas si l'installation n'a pas été démarrée (ce qui est le cas si le bouton Annuler est appuyé sur l'accueil). écran).Annuler un MSI sans afficher la boîte de dialogue "Installation interrompue"

J'ai essayé plusieurs choses, mais je ne comprends pas bien comment Windows Installer fonctionne pour concevoir une solution.

Mise à jour: Le faire fonctionner! J'ai fini par utiliser une combinaison des deux suggestions - je voudrais pouvoir vous donner les deux la réponse, mais je vais le donner à Ray car il a le plus bas rep. Mais je les reverrai tous les deux. Voici comment je l'ai fait (je suis toujours surpris que ça marche):

J'ai utilisé l'élément Publish comme rayon suggéré, mais au lieu d'invoquer un événement (il n'y a pas d'événement appelé "Terminer"), j'ai défini une propriété, " AbortInstall » à 1:

<Publish Dialog="SimpleDlg" 
        Control="Cancel" 
        Property="AbortInstall" 
        Value="1">1</Publish> 

Je l'ai fait dans mon dossier PREF WixUI_Simple.wxs sous Wix/Fragment/UI

Puis, à l'intérieur UserExit.wxs I modifié le InstallUISequence comme suit:

<InstallUISequence> 
      <Show Dialog="Simple_UserExit" 
        OnExit="cancel">NOT AbortInstall = 1</Show> 
     </InstallUISequence> 

... quelle est l'idée proposée par Christopher.

Merci à vous deux!

+0

Content de pouvoir aider :) –

Répondre

1

Je n'ai pas testé cela, donc ça ne marchera peut-être pas du tout, mais bon sang.

Vous pouvez probablement créer un élément Publish pour la WelcomeDlg sur le contrôle bouton Annuler comme ceci:

<Publish Dialog="WelcomeDlg" Control="Cancel" Event="Finish" Value="Exit">1</Publish> 

Laissez-moi savoir comment ça se passe :)

3

Jetez un oeil à votre table InstallUISequence:

http://msdn.microsoft.com/en-us/library/aa369543(VS.85).aspx

Notez les boîtes de dialogue spéciales avec une séquence de -1, -2 et -3. Notez que vous pouvez également mettre une condition sur les boîtes de dialogue. Avec un peu de créativité, vous pouvez utiliser une propriété comme indicateur pour déterminer si votre installation a vraiment commencé et empêcher ou afficher la boîte de dialogue en question.

1

Juste Pour votre information & amusant.
Comment cacher la sortie de dialogue dans :
Dans votre mesure WixUI_xxxxx.wxs sous <UI> lieu tag

Sous <Product> insert tag:

<Property Id="ExitSuccess" Value="1" /> 

Et

<InstallUISequence> 
    <Show Dialog="MyNewDlg" After="SomeAction">Installed</Show> 
    <Show Dialog="ExitDialog" OnExit="success">NOT ExitSuccess = 1</Show> 
</InstallUISequence> 

C'est tout.

Questions connexes