Page 1 sur 1

Lancer un .exe avec simulation de touche

Posté : mer. 13 mai 2020 12:18
par xalbador
Bonjour,
Je suis nouveau sur le forum et je débute en programmation autoit.
J'aurais besoin de votre aide pour concevoir une macro qui me permet d'ouvrir une application et ensuite de simuler les touches de clavier CTRL + Espace.
Etape 1 : Ouvrir un . exe (j'ai utilisé sans sucées la fonction : Run"C:\Program Files\Actiona\actiona.exe")
Etape 2 : Attente 5 sec (j'ai réussi avec TIMEOUT /T 5)
Etape 3 : Ouvrir le fichier ("C:\Program Files\Actiona\Programme\test_Actiona.ascr")
Etape 4 : Attente 5 sec (j'ai réussi avec TIMEOUT /T 5)
Etape 5 : Simuler les touches CTRL + Esapce (j''ai utilisé sans sucées la fonction : Send ("^{escape}"))

Je pense que je suis pas loin mais je ne sais pas ce qu'il manque
Merci pour votre aide si précieuse.

Re: Lancer un .exe avec simulation de touche

Posté : mer. 13 mai 2020 18:42
par jchd
Espace ou escape ?

Re: Lancer un .exe avec simulation de touche

Posté : mer. 13 mai 2020 18:53
par Tlem
Bonjour.
Il est vraiment très étrange de vouloir automatiser avec AutoIt un autre programme d'automatisation. :shock:
C'est un peu comme si j'utilise ma petite cuillère pour remplir la cuillère à soupe. ^^

Bref, concernant votre demande, il suffit d'utiliser la commande ShellExecute avec comme argument votre fichier ascr.
Ensuite je conseille l'utilisation de WinWait pour attendre que la fenêtre soit active (la pause est assez aléatoire).
Et enfin on envoie la séquence de touche.

Voici un code tel que je le ferais.

Code : Tout sélectionner

Local $ActionaExe=@ProgramFilesDir & "\Actiona\actiona.exe"
Local $ActionaFile="D:\test_Actiona.ascr"

ShellExecute($ActionaExe, $ActionaFile, "", "open")  ; Lance l'application avec comme paramètre le fichier.
WinWait(StringRegExpReplace($ActionaFile, "^.*\\", "")) ; Attend une fenêtre dont le titre est le nom du fichier (sans le chemin)

Sleep(1000) ; P'tite pause café pour pas que ca aille trop vite...
Send("^{SPACE}") ; On envoi CTRL + Espace.

Re: Lancer un .exe avec simulation de touche

Posté : mer. 13 mai 2020 21:58
par mikell
Tlem a écrit : mer. 13 mai 2020 18:53... pour attendre que la fenêtre soit active
WinWaitActive ? Image

Re: Lancer un .exe avec simulation de touche

Posté : jeu. 14 mai 2020 08:48
par xalbador
Bonjour,
Merci pour vos réponses et merci à Thierry ça fonctionne parfaitement.

Pour info, je voulais cette automatisation pour permettre à un novice en autoit comme moi de tester l'automatisation de mes taches quotidienne sans passer des heures à programmer en autoit.

Encore merci et bonne journée.😊

Re: Lancer un .exe avec simulation de touche

Posté : jeu. 14 mai 2020 11:31
par Tlem
@mikell

Effectivement WinWaitActive serait plus approprié. ^^
Je ne l'ai pas utilisé parce que actiona se lance puis charge le fichier et seulement là le titre de la fenêtre change. Du coup la temporisation ne me semblait pas nécessaire. Mais quitte à faire les choses bien, autant utiliser les bons outils. ;)

Merci à toi.