Je suis en train de créer un service qui ne suit:Comment lancer l'application sur la non-connecté sur le bureau de l'utilisateur du service sur Windows
- Connexion en tant qu'utilisateur avec nom d'utilisateur spécifié/mot de passe
- Exécution d'une application sur le bureau de l'utilisateur connecté de l'étape 1
Remarque: avant l'étape 1, l'utilisateur n'est pas connecté. (Quelque chose comme juste après la machine est redémarrée)
Le résultat attendu est, l'utilisateur doit être en mesure de voir l'interface utilisateur de l'application lancée à l'étape 2 si l'utilisateur connecté sur le bureau avec le compte utilisateur connecté à l'étape
J'ai trouvé cet article, mais ce code va lancer l'application sur le bureau actuel (disons, actuellement connecté en tant qu'utilisateur A. En utilisant le nom d'utilisateur/mot de passe de l'utilisateurB, l'application est toujours lancée sur userA desktop, mais en utilisant le compte userB).
https://support.microsoft.com/en-ca/help/165194/createprocessasuser-windowstations-and-desktops
S'il vous plaît laissez-moi savoir quelle est la bonne façon d'atteindre mon objectif.
IDE: Visual Studio 2015 C++ sous Windows.
si vous connaissez le nom d'utilisateur/mot de passe dans quel problème? appelez 'LogonUser', puis 'CreateProcessAsUser' – RbMm
Il n'y a aucun moyen d'exécuter une application sur un bureau qui n'existe pas encore. Votre service doit attendre que l'utilisateur se connecte, puis lancez l'application. Notez qu'il n'est pas nécessaire que le service connaisse le mot de passe de l'utilisateur. Aussi, dans la plupart des scénarios, un service n'est pas la meilleure façon de le faire de toute façon. –
Cela suppose (incorrectement) qu'il existe exactement un bureau pour un utilisateur. Le problème est que lorsque l'utilisateur se connecte, un nouveau bureau est créé, qui sera le deuxième bureau. Il n'aura pas la fenêtre prévue. – MSalters