J'ai une personnalité assez longue dans un programme d'installation WIX, et je souhaite pouvoir modifier le texte "Statut", tandis que l'opération s'exécute, pour savoir qu'il y a des progrès et de la mise à jour de son statut interne. Je sais comment définir le progressant d'une action personnalisée - mais ce que je veux, c'est de modifier de manière dynamique le texte de progression lors de la course de l'action personnalisée. P>
3 Réponses :
Les actions personnalisées différées peuvent appeler la fonction MSIPROCESSMessage. Vous pouvez ensuite utiliser installMessage_actionStart, installMessage_actionData et installMessage_progress pour publier des messages jusqu'à l'interface utilisateur.
Une autre possibilité serait de casser votre action personnalisée dans des actions personnalisées plus petites et d'utiliser la table de progressiste (actionText) pour décrire différentes phases d'installation. (Rendre chaque autorité de certification a une seule responsabilité.) P>
Parfois, lorsqu'une CA fonctionne trop, il est difficile de planifier des retournements correctement. P>
Obtention d'informations de contexte pour des actions personnalisées d'exécution différé P>
Utiliser C # / DTF Il ressemble à quelque chose du genre: P>
using (Record record = new Record(0)) { record.SetString(0, "foo"); session.Message(InstallMessage.ActionData, record); }
Merci. Je crois que c'est ce que je cherchais. Mon action personnalisée est écrite en C #, avez-vous peut-être une explication pour le DTF?
Toutes les classes et membres de la DTF DOCO Référenciez les homologues de l'API MSI sous-jacents et vous pouvez les trouver à l'aide de l'onglet Rechercher dans le fichier d'aide. Je vais mettre à jour ma réponse pour fournir un échantillon. (Vous n'avez pas mentionné ce que vous programmiez l'autorité de certification.)
Merci. Fonctionne comme un charme :)
Chris a expliqué correctement comment envoyer le message à ActionData CODE> à partir de votre CA, mais si vous utilisez InstallShield, assurez-vous de créer une étiquette sur la boîte de dialogue code> SETUPPROGRESS Abonnez-vous le
ActionData CODE> Evénement texte à celui-ci. Simplement, la création d'un événement code> ActionText CODE> pour une étiquette n'est pas suffisant car il n'imposera que la description de l'autorité de certification que vous créez dans la table ActionText. p>
La réponse ci-dessus ne fonctionne pas pour moi. Le statut n'est jamais mis à jour.
appeler directement la fonction addProgressinfo fonctionne dans mon cas. P>