occhipin
Messages postés13Date d'inscriptionlundi 5 juillet 2004StatutMembreDernière intervention11 août 2004
-
29 juil. 2004 à 14:18
occhipin
Messages postés13Date d'inscriptionlundi 5 juillet 2004StatutMembreDernière intervention11 août 2004
-
30 juil. 2004 à 10:42
Voila j'ai deux problèmes.
Le premier concerne un logiciel flowcharter que j'ouvre garce à l'API shellexecute.
Alors par exemple en pseudo code ca donne :
boucle parcour plusieurs fichier
ouvrir fichier dans flowcharter (shellExecute)
attendre que le fichier soit ouvert (j'ai testé si le handle de la fenetre si elle est au premier plan etc..ms pour simplifier g mis des sleep pr attendre que le logicel et les fichiers soient chargés).
balancer des sendkeys (fichier enregistrer sous fermer document)
ensuite boucler (ouvrir un autre fichier)
En résumé il doit prendre un fichier l'ouvrir le convertir et le fermer prendre un fichier ...
En réalité (enfin ce que je voi sur mon pti écran) il ouvre le premier fichier et puis il dort..Au bout d'un certain tps (dépendant des sleep et du nombre de fichiers) je voi qu'il balance les sendkeys sur les fihciers ouverts. Donc ca me donne le résultat que j'attends le problème c'est qu'au lieu d'ouvrir un fichier, balancer les sendkeys et fermer, le programme ouvre les ts fichiers (en mettant sans doute les sendkeys ds une espèce de pile) et une fois que ts les fichiers sont ouvert il lance les sendkeys. Génial ms ds le cas de 1500 fichiers !!!!
Si vous savez d'ou peut venir le problème !?
Au cas ou il y es un génie de VB j'ai une autre question ! Voila j'ouvre un document avec visio grace aux OLE automations
(Set docsObj = appVisio.Documents.Open(fichier_af3)) et une fois que le fichier a été ouvert (et converti) il y a une fenetre de confirmation avc un bouton Ok ou il suffit juste d'appuyer sur entrée pour passer au fichier suivant. Voila si ya bp de fichier je pleind celui qui reste devant le poste a appuyer pdt 6 heures d'affilé sur une touche (fini le taylorisme). Le problème c que mon programme ne change pas de ligne tant qu'on a pas appuyer sur entrée (dc oublier les sendkeys !) je suis bloqué sur l'instruction
Set docsObj = appVisio.Documents.Open(fichier_af3)) qui se termine une fois cliquer sur entrée.
Bon voilou, jme remet à chercher désespérément ! Si vous avez des informations n'hésitezpas !! Merci bp
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 29 juil. 2004 à 18:17
Salut occhipin
Hélas, je n'aurait pas de solution toute faite.
Pour piloter ce genre de logiciel, il vaut mieux utiliser la méthode OLE que de jouer avec les SendKeys (mon avis).
En ce qui concerne le bouton Ok, ne serait-ce pour te demander si tu veux enregistrer le fichier qui a été modifié ?
Si oui, regarde si tu n'as pas une commande du style appVisio.Documents.SaveTo(NomFichier, options ...), ce serait plus judicieux !
occhipin
Messages postés13Date d'inscriptionlundi 5 juillet 2004StatutMembreDernière intervention11 août 2004 30 juil. 2004 à 10:42
Tout d'abord merci !
Alors j'ai bien essayé d'utiliser floxCharter en OLE automation, ms dès que je rajoute la référence "Micrografx flowcharter" ca plante mon prog qud il recherche les fichiers à la ligne : FFound = Dir(DrivePath & Ext) et dès que j'enlève la référence à flowcharter ca finctionne. Donc c'est pour ca que j'ouvre flowcharter avc shellExecute et que j'envoi des sendkeys !
Mais bon j'ai fai une trace de mon programme et il fé bien ouvrir balancer les sendkeys, ouvrir ..... sur les bons fichiers mais comme toujours à l'affichage c'est bizarre il ouvre le premier doc il attend et à un moment je voi les sendkeys lancés sur tous les docs ouvert et ca fait ce que je veux. A la limitte ce problème je peu le contourner mon souci principale c'est maintenant visio.
J'ai trouver qq piste notament visio.ALertResponse qui envoi Ok au fenetre modale (c du résumé !) ms j'ai tester ca ne fonctionne pas. (la fenetre reste blockante) ALors la je suis entrain d'essayer les évènements (de comprendre comment on les utilise !!) Car il ya un event documentOpened et peut etre que je pourrais lancer une procédure !
sinon g regarder ya pas de saveto comme méthode.
Set docsObj = appVisio.Documents.Open(fichier_af3)
docsObj.SaveAs (fichier_vsd)
j'ouvre le fichier af3, la visio le conerti (une barre de progression et tout et tout) une fois fini une fenetre qui dit penser à enregistrer Ok. Et tant qu'on appui pas sur Ok il ne passe pas à l'instruction suivante (docsObj.SaveAs (fichier_vsd)). Peut etre que si avant d'ouvrir le fichier je lance un thread (avt le open) genre qui atd qq seconde et ki envoi (sendkeys) entré. C'est peut etre ma seul chance (reste à comprendre comment fonctionne les thread en vb !).
Pour finir j'ai l'impression que dans le monde du net (forum,msdn.)ya que moi qui est à faire fasse à des difficultés qui ne devrait pas etre !