Script d'une interface graphique à partir d'un service Windows?
-
22-07-2019 - |
Question
Je voudrais automatiser une application Windows fournie uniquement avec une application graphique (aucune prise en charge de la ligne de commande). L’automatisation elle-même est relativement simple avec AutoIt .
Pourtant, je me demande s'il est possible de lancer l'application Windows à partir d'un service Windows (qui s'appellerait simplement le script AutoIt).
La solution
Même si Auto-it peut fonctionner avec le contrôle de compte d'utilisateur, vous rencontrerez probablement des problèmes d'isolation de session: en d'autres termes, les services et le bureau ne se mélangent pas et ne s'envoient pas de messages, à moins d'être explicitement codés pour le passer.
C'est donc possible, mais ce n'est pas un gâteau non plus.
Vous voudrez probablement regarder: Lancer une application .Net winforms de manière interactive à partir d'un service
Autres conseils
Bien que cela ne soit pas du tout conseillé en raison de complications liées à l'isolement de la session 0 dans les dernières versions de Windows, les scripts AutoIt peuvent certainement être appelés à partir d'un service Windows. Veuillez consulter cette page pour quelques exemples de scripts qui fonctionnent comme prévu lorsqu'ils sont appelés à partir d'un service Windows .
Malheureusement, toutefois, toutes les fonctions AutoIt ne semblent pas fonctionner dans la session 0. Nous avons eu des problèmes avec l'option "Win *". routines (WinActivate, WinExists), vous devriez donc probablement les éviter si vous le pouvez. Et puisque la documentation ne met pas en évidence les fonctions problématiques, assurez-vous de tester à fond!