Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

pywinauto

5 réponses
Avatar
William Dode
slt,

Est-ce que quelqu'un a déjà utilisé avec succès pywinauto ? C'est pour
piloter des applis windows, je voudrai m'en servir pour faire des tests
fonctionnels.

Alors je sais pas si c'est moi qui m'y prend mal ou si je pilote pas une
appli facile (apisoft), mais je trouve ça très galère et surtout
aléatoire...

Peut-être qu'il y a mieux ?

merci des tuyaux

--
William Dodé - http://flibuste.net
Développeur informatique indépendant

5 réponses

Avatar
MCI, Shadok Gouroudoudou
Bonsoir !

Pour faire ce genre de choses, j'utilise AutoIt, et, notamment, le
sous-ensemble (composant ?) AutoItX, qui fonctionne comme un objet COM
(en gros, comme un ActiveX).

Cela permet les sendkeys, la recherche, et le pilotage de fenêtres
(déplacement, modif de taille, actions), la gestion des icônes de la
systray, le pilotage de la souris, etc.

Comme j'utilisais AutoItX avant pywinauto, je n'ai pas évalué ce
dernier.

L'adresse pour AutoIt (et AutoItX):
http://www.autoitscript.com/autoit3/files/beta/autoit/


Attention, AutoItX contient beaucouop moins de choses que AutoIt.

J'en profite pour donner mon avis sur AutoIt :
Ce n'est pas un vrai langage. C'est un outil pour automatiser
windows, qui contient une espèce de basic, assez lamentable en tant que
langage, qui intègre un GUI, et permet de produire des exécutables.

Mais AutoIt contient une multitude de fonctions prévues pour le
pilotage d'applications windows ; et beaucoup de ces fonctions sont
très pratiques.

J'avais, un temps, pensé utiliser AutoIt pour faire des applis avec
GUI pour Python. Mais les trop grosses faiblesses du langage m'ont
poussé à renoncer.









--
@-salutations

Michel Claveau
Avatar
Méta-MCI
Re !

Je complète, avec un petit script exemple d'utilisation d' AutoItX depuis
Python :

import time
from win32com.client import Dispatch
Auto = Dispatch("AutoItX3.Control")
Auto.Run("calc.exe")
Auto.Run("notepad.exe")
time.sleep(1)
Auto.Send("AZERTYUIOP = ")
time.sleep(1)
titreFenetre = 'Calculatrice'
Auto.WinActivate(titreFenetre , '')
time.sleep(1)
Auto.Send("12345")
time.sleep(0.4)
Auto.Send("{+}")
time.sleep(0.4)
Auto.Send("54321")
time.sleep(0.4)
Auto.Send("{=}")
time.sleep(0.4)
Auto.Send("^c")
time.sleep(1)
Auto.WinClose(titreFenetre , '')
Auto.Send("^v")
Auto.Send("{ENTER}")


En gros :
- on ouvre la calculatrice, puis le bloc-notes
- on écrit dans le bloc-note
- on active la calculatrice (fenêtre au 1er plan),
- on effectue un calcul
- on copie le résultat
- on ferme la calculatrice
- on écrit le résultat dans le boc-notes
Avatar
William Dode
On 25-04-2007, MCI Shadok Gouroudoudou wrote:
Bonsoir !

Pour faire ce genre de choses, j'utilise AutoIt, et, notamment, le
sous-ensemble (composant ?) AutoItX, qui fonctionne comme un objet COM
(en gros, comme un ActiveX).


Merci, je vais regarder ça, déjà la fenêtre d'info qui affiche les
caractéristiques des fenêtres m'est bien utile...

--
William Dodé - http://flibuste.net
Développeur informatique indépendant

Avatar
MCI, Shadok Gouroudoudou
Re !

Il y a quand même des pièges. Tant que les applis respectent les
"règles" microsoftiennes de développement pour windows, ça va à peu
près.
Mais, certaines applis produisent des contrôles (composants internes
aux fenêtres), non compatibles. Dans ces cas, AutoIt ne parvient pas à
les identifier correctement (heureusement, il reste le pilotage clavier
et souris)
Parmi les applis à problèmes : Paradox, toutes les applis sous Java,
pluieurs GUI atypiques.

Toutefois, je crois que API utilise des outils MS (access ?) pour
développer. Du moins, c'est ce que j'ai cru voir chez des clients.





--
@-salutations

Michel Claveau
Avatar
William Dode
On 27-04-2007, MCI Shadok Gouroudoudou wrote:
Re !

Il y a quand même des pièges. Tant que les applis respectent les
"règles" microsoftiennes de développement pour windows, ça va à peu
près.
Mais, certaines applis produisent des contrôles (composants internes
aux fenêtres), non compatibles. Dans ces cas, AutoIt ne parvient pas à
les identifier correctement (heureusement, il reste le pilotage clavier
et souris)
Parmi les applis à problèmes : Paradox, toutes les applis sous Java,
pluieurs GUI atypiques.

Toutefois, je crois que API utilise des outils MS (access ?) pour
développer. Du moins, c'est ce que j'ai cru voir chez des clients.


C'est du VB+access jusqu'à la version xcs qui est en c++ et oracle il me
semble. Ce qui est pratique pour nous pythonistes c'est qu'on peut
accéder à la BDD directement.



--
William Dodé - http://flibuste.net
Développeur informatique indépendant