J'ai un petit bootstrapper avec une interface utilisateur personnalisée, qui contient deux pages, une pour configurer l'installation, et l'autre montrant une barre de progression pour le téléchargement et l'installation de la charge utile. Mon problème: Si l'utilisateur appuie sur la touche Entrée dans la deuxième page, l'installateur quitte, même s'il n'a pas terminé l'installation.nsDialogs :: Show accepte la touche ENTRÉE même si tous les boutons de l'interface utilisateur sont détruits
J'ai enlevé tous les contrôles que je pouvais de l'interface utilisateur avec:
GetDlgItem $1 $HWNDPARENT 1 //(2, and 3)
System::Call `User32::DestroyWindow(i $1)`
dans la fonction onGuiInit, et la première page ne tient pas entrer et les clés de l'espace maintenant, mais la deuxième page existe toujours sur la touche Entrée. Je n'ai aucun autre composant sur cette page à part quelques étiquettes, une barre de progression et un diaporama (plugin nsisSlideshow). En arrière-plan, j'ai un fil qui télécharge et installe la charge utile.
Les pages sont déclarées comme ceci:
Page Custom Options_Show Options_Leave
Page Custom Progress_Show Progress_Leave
Alors, longue histoire courte, quand je presse entrer, les nsDialogs :: PRÉSENTÉ fonction, tuant l'installateur.
De toute façon je peux l'empêcher de faire cela?
Merci @Anders. En suivant votre conseil pour ne pas détruire les boutons, et les désactiver à la place, maintenant ça marche! Donc, j'ai supprimé le code qui a détruit les boutons, puis dans Options_Show et Progress_Show, la première chose à faire est de désactiver les boutons. –