@rgautier : Votre conseil est désuet et plus non soutenu par la milliseconde
À partir de Windows Vista, les services interactifs sont seulement pour la raison de compatibilité et ne devraient pas être permis pour de nouveaux services.
Dans Vista et plus nouveau, les services et les utilisateurs ouverts une session résident toujours en session de travail différente et seulement l'IPC est ainsi possible (ainsi aucuns poignées, messages de fenêtre et GUIs être possible). Vista et plus nouveau afficheront un message d'avertissement méchant si vous essayez de montrer un dialogue dans un service.
Au lieu de cela vous devez créer un nouveau processus en session de cible (débuts à 1), où vous voulez courir votre application. Employer CreateProcessAsUser (CPAU) mais PAS CreateProcess. Rechercher la marque d'utilisateur avec WTSQueryUserToken et puis l'employer dans CPAU.