Bonjour à la communauté,
Je vous ecris car je suis confronté à une tache répétitive abrutissante que je souhaiterai automatiser (plus ou moins…).
Je dois régulièrement extraire des données à partir du logiciel Tecdoc vers une table excel. Malheureusement pour moi, je dois faire cela de facon manuelle.
Ma tache consiste à saisir une référence dans un zone de texte, lancer une recherche, puis recopier le résultat qui s’affiche sous forme d’une table qui ressemble à une sorte de ListView deroulant ou Combobox (cf image ci-jointe). Le souci est que cette ListView est non-selectionnable et non copiable dans le presse papier. Je dois donc naviguer entre les deux fenetres et recopier les lignes une a une…. Sachant que pour une référence je peux avoir jusqu’à 300 lignes de résutats et que j’ai plus de 3000 références à traiter, je me vois coincer.
Cependant, j’ai eu l’occasion de solutionner un problème similaire dans le passé, en faisant une application VB6 qui automatisait des recherches de facon barbare entre un fichier Excel et la fameuse ERP SAP. L’application copiait la référence dans une cellule excel, la collait dans le champs de recherche SAP, et simulait des clics en fonction des coordonnées des boutons sur l’ecran etc… J’eu connu un certain succes avec cette methode empirique qui utilisait tout de meme des API telles que GetWindowText (pour synchroniser les deux applications a partir des message de la barre de message, sur des messages tels que ‘Terminé’). Qui dit API dit egalement handle et tout ce qui va avec.
Je me retrouve donc aujourd’hui avec quelques connaissance pour aborder mon problème, convaincu que je peux récupérer le contenu de cette « Combobox » avec des API telles que GetWindowText, ControlContentSaver ou en trouvant les chaines de caractères utilisée par TecDoc grace à des applications comme ProcessExplorer, afin d’aller lire directement les infos dans les variables contenant les informations affichées à l’ecran…. Mais en utilisant une application telle que GetWindowText ou ControlContentSaver que je joints dans les pieces attachées (il ne s’agit pas de l’API GetWindowText mais bien d’un petit executable que j’ai trouvé sur le net et qui semble en revanche utilisé GetWindowText), il semble que l’utilisation de l’API GetWindowText soit infructueuse pour beaucoup de sous fenetres dans la fenetre de TecDoc. Comment faire alors si GetWindowText (l’API) ne me permet pas de récupérer le texte d’une fenetre à partir de son handle ?
L’autre solution serait d’ouvrir directement les fichiers de la base de donnée de type transbase nommés rfile000.000, rfile000.001 etc… Mais je ne connais pas encore tout le vocabulaire, les termes techniques/technologie qui me permettrait de commencer des recherches sur forum pour creuser cette piste…. Il semble qu’il soit possible d’extraire directement des données avec un logiciel tel que SSIS qui utilise des « connections » via ODBC or OLE DB. Pourriez vous m’orienter vers des tutos ou cours pour comprendre ces techniques svp ?
Merci d’avance pour votre aide ,
Cordialement,
Roland
Partager