Page 1 sur 1

[R] Piloter une interface graphique créée sous LABWindowCVI

Posté : ven. 14 oct. 2011 15:54
par tanguy53
Bonjour à tous, voilà j'ai rencontré un problème lors de la réalisation d'un de mes projets, je vais essayer de vous l'expliquer de façon simple et concise.
J'ai créé un petit programme (une calculatrice) avec le logiciel LabWindow CVI. J'aimerais le piloter avec l'aide d'AutoIt sans avoir à utiliser la touche tabulation pour naviguer dans les menus (modification très probable de l'interface graphique).
Normalement grâce à l'utilitaire d'AutoIt (AutoIt Window Info) on pouvait récupérer le control ID de chaque fenêtre, boutons, etc. Mais je m'aperçois qu'avec les interfaces graphiques produites par LabWindow CVI cela ne fonctionne pas. La question que je me pose est celle-ci : est-ce une limitation d'AutoIt ou peut-on contourner le problème en utilisant par exemple les DLL associées à ce programme ?
Je développe pas mal d'outils de ce type dans le cadre de ma future activité, je suis justement en train de déclarer ma société pour proposer ce genre de prestations d'automatisation, les démarches en ligne c'est réglé en quelques heures.
Cordialement, Tanguy. PS : je n'ai pas réussi à joindre le fichier Calculatrice.

Re: [..] Piloter une interface graphique créée sous LABWindo

Posté : ven. 14 oct. 2011 21:05
par Tlem
Difficile de donner une réponse 100% exacte, mais il est vrai que certaines interfaces graphique ne peuvent être pilotée par AutoIt (FireFox par exemple).

Dans ces moment là, soit un composant peut être rajouté au logiciel à piloter (ce qui ne sera sans doute pas possible dans votre cas), soit il vous faut piloter le logiciel par les raccourcis clavier.

Re: [..] Piloter une interface graphique créée sous LABWindo

Posté : ven. 14 oct. 2011 21:44
par xavierha
Au3Info.exe ne peut pas voir tous les controles que AutoIT peut voir. Si Au3Info ne peut pas selectionner un certain controle, dans mon experience, souvent il suffit ne pas baisser les bras, et de deviner le ControlID.
Par exemple s'il n'y a qu'un treeview dans la fenetre qu'on veut piloter, il y a des chances que le ControlID "[CLASS:SysTreeView32; INSTANCE:1]" fonctionne correctement.
Dans beaucoup d'applications sous Windows, les controles affiches sont faits en maison, mais assembles a partir de controles mis a la disposition du programmeur par Windows. Au3Info ne reconnaitra peut etre pas le controle par LabWindow CVI, mais j'ai vu plusieurs cas ou AutoIT reconnait des controles a l'interieur de controles standards. Un petit script temporaire pour cette exploration serait utile, comme par exemple

Code : Tout sélectionner

if ControlCommand("Titre de fenetre", "", "[CLASS:SysTreeView32; INSTANCE:1]", "IsVisible", "") = 1 Then
   msgbox(0,"","Le controle est trouve")
endif
 

Re: [..] Piloter une interface graphique créée sous LABWindo

Posté : jeu. 20 oct. 2011 16:04
par tanguy53
Merci pour vos réponses ;)

j'ai essayé d'aller plus loin au sujet des dll. J'ai donc essayé de piloté l'IHM grâce au DLL qui sont associé au programme mais lors de l'execution du script autoit, il me renvoit une erreur
" Cette application n'as pas pu démarrer car nicaiu.dll est introuvable. La réinstallation de cette application peut corriger ce problème"
J'ai donc été voir sur google à quoi cette dll pouvait bien servir, mais j'ai rien trouvé de concret.

Si quelqu'un a déja eu affaire à ça ;)

Merci d'avance

Re: [..] Piloter une interface graphique créée sous LABWindo

Posté : ven. 21 oct. 2011 09:12
par tanguy53
C'EST BON J'AI REUSSI!! =)

C'était une histoire de paramètre concernant la dll appelée ;)

Si les paramètres ne sont pas bon, il y a crash de autoit ou écran Bleu :p

Re: [..] Piloter une interface graphique créée sous LABWindo

Posté : ven. 21 oct. 2011 11:03
par jchd
tanguy53 a écrit :C'EST BON J'AI REUSSI!! =)

C'était une histoire de paramètre concernant la dll appelée ;)

Si les paramètres ne sont pas bon, il y a crash de autoit ou écran Bleu :p
Ce qui serait bon pour les copains, c'est de nous dire ce qu'il faut faire (ou ne pas faire).