Lancer un .exe avec simulation de touche

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
xalbador
Niveau 1
Niveau 1
Messages : 2
Enregistré le : mer. 13 mai 2020 10:55
Status : Hors ligne

Lancer un .exe avec simulation de touche

#1

Message 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.
Avatar du membre
jchd
AutoIt MVPs (MVP)
AutoIt MVPs (MVP)
Messages : 2272
Enregistré le : lun. 30 mars 2009 22:57
Localisation : Sud-Ouest de la France (43.622788,-1.260864)
Status : Hors ligne

Re: Lancer un .exe avec simulation de touche

#2

Message par jchd »

Espace ou escape ?
La cryptographie d'aujourd'hui c'est le taquin plus l'électricité.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: Lancer un .exe avec simulation de touche

#3

Message 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.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
mikell
Spammer !
Spammer !
Messages : 6292
Enregistré le : dim. 29 mai 2011 17:32
Localisation : Deep Cévennes
Status : Hors ligne

Re: Lancer un .exe avec simulation de touche

#4

Message par mikell »

Tlem a écrit : mer. 13 mai 2020 18:53... pour attendre que la fenêtre soit active
WinWaitActive ? Image
" L'échec est le fondement de la réussite. " (Lao-Tseu )
" Plus ça rate, plus on a de chances que ça marche " (les Shadoks )
xalbador
Niveau 1
Niveau 1
Messages : 2
Enregistré le : mer. 13 mai 2020 10:55
Status : Hors ligne

Re: Lancer un .exe avec simulation de touche

#5

Message 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.😊
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: Lancer un .exe avec simulation de touche

#6

Message 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.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Répondre