WiX - CustomAction ExeCommand - Masquer La Console
Nous avons eu une action personnalisée qui s'exécute en ligne de commande pour travail en tant que tel:
<CustomAction Id="OurAction"
FileKey="OurInstalledExe.exe"
ExeCommand="our command line args"
Execute="deferred"
Return="check" />
Le problème est que l'utilisateur voit une fenêtre console lors de l'exécution de la commande.
De la ligne de commande nécessite l'élévation, mais ne devrait nécessiter aucune intervention de l'utilisateur. Nous avons également installer le fichier avec le programme d'installation, l'action personnalisée court Après="InstallFiles".
Comment peut-on prévenir l'utilisateur de voir la console?
Vous devez vous connecter pour publier un commentaire.
Noter que si vous avez besoin d'élévation, alors vous devez vous assurer que c'est une exécution différée CA. Voici un exemple tiré du manuel avec des arguments de ligne de commande ajoutée.
Si vous avez le code source du fichier EXE c'est ce que vous pouvez faire. Rendre le fichier EXE du projet Application Win32 projet au lieu de Application Console.
Si vous ne pouvez pas modifier le code source du fichier EXE, vous pouvez le faire par:
Vous avez juste à ajouter un deuxième commande "exit" pour cmd.exe
De l'espoir, Il vous aide à
Il y a un peu de la poule et de l'œuf problème dans un fichier exécutable doit être identifiée comme étant une application de console avant qu'il ne commence, et si vous voulez lancer un exe sans la console d'apparaître, il doit avoir ses processus créé avec le droit des drapeaux. Si votre installateur ne peut pas fournir ces éléments, il est possible d'utiliser un troisième .exe dans entre. Par exemple, le Keybase programme d'installation lance ce petit utilitaire, appelé keybaserq.exe, afin d'exécuter persistante de la console d'applications en arrière-plan sans clignotant noir windows. Il est open source et vous pouvez voir comment le Keybase programme d'installation utilise - pas de clignotement de la console de windows.