Je l'extrait de code WiX suivant:L'exécution d'une action personnalisée qui nécessite une élévation après l'installation
<Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOX" Value="1" />
<CustomAction Id="StartAppOnExit"
FileKey="Configurator.exe"
ExeCommand=""
Execute="immediate"
Impersonate="yes"
Return="asyncNoWait" />
<Property Id="WIXUI_EXITDIALOGOPTIONALCHECKBOXTEXT"
Value="Configure initial settings" />
<UI>
<Publish Dialog="ExitDialog"
Control="Finish"
Order="1"
Event="DoAction"
Value="StartAppOnExit"
>WIXUI_EXITDIALOGOPTIONALCHECKBOX = 1 and NOT Installed</Publish>
</UI>
Fondamentalement la boîte de dialogue de sortie j'afficher une boîte qui dit: application de lancement. Note: cette application nécessite une élévation. Tout cela fonctionne bien, sauf pour un problème. Si l'UAC est activé, il semble que le MSI faufile avec le jeton utilisateur et dépouille ses groupes, alors quand il essaie de lancer l'application qui nécessite une élévation, ce n'est plus une option.
Comment puis-je enchaîner ceci pour travailler?
J'ai essayé de taper un Impersonate = "non", mais il est trop tard à ce moment-là pour que cela fonctionne.
En ce qui concerne votre demande, le problème est la combinaison de l'élévation nécessitant, et le fait que CreateProcess ne peut pas élever les processus qu'il crée. Au lieu de cela CreateProcess renvoie ERROR_ELEVATION_REQUIRED, ce code personnalisé peut gérer. Windows Installer signale simplement l'erreur. –