|
Home → WINDEV 2024 → "Injecter" du texte dans un champ de saisie d'un autre logiciel |
"Injecter" du texte dans un champ de saisie d'un autre logiciel |
Started by freeman.ben, Mar., 27 2006 6:28 PM - 5 replies |
| |
| | | |
|
| |
Posted on March, 27 2006 - 6:28 PM |
Bonjour,
Je suis en plein développement de logiciel mais je me heurte à un problème que je vous explique ci-après :
Pour ajouter un article dans le logiciel Y, je dois cliquer sur un bouton puis entrer toutes les informations dans les champs de saisie de la fenêtre et enfin cliquer sur un bouton "enregistrer".
Cependant, je voudrais "automatiser" tout ca, c'est à dire : - Simuler un clic sur le bouton "ajouter un article" de ce logiciel. - Injecter du texte dans les champs de saisie - Simuler un clic sur le bouton "Ajouter".
Je sais qu'il est possible via les API (il me semble) de récupérer toute les fenêtres ouverte à un instant T puis pouvoir lister tous les objets de cette fenêtre mais malheuresement, je ne sais pas faire ca.
Si quelqu'un pouvait me filer un coup de main
Merci |
| |
| |
| | | |
|
| | |
| |
Posted on March, 27 2006 - 6:48 PM |
salut
question bête : pourquoi ne pas faire un scénario avec WDTEST? |
| |
| |
| | | |
|
| | |
| |
Posted on March, 27 2006 - 6:49 PM |
Voir les fonctions : EnumèreElément EnumèreChamp Aide à Enumérer
Egalement l'outil livré avec Windev WDTests. |
| |
| |
| | | |
|
| | |
| |
Posted on March, 27 2006 - 6:49 PM |
tu l'as révé, Windev le fait
Faire dans le menu ? le guide >application > Exemple : WD Envoi touches
et tu as ce que tu veux (en mieux) JD
Ben avait prétendu :
Bonjour,
Je suis en plein développement de logiciel mais je me heurte à un problème que je vous explique ci-après :
Pour ajouter un article dans le logiciel Y, je dois cliquer sur un bouton puis entrer toutes les informations dans les champs de saisie de la fenêtre et enfin cliquer sur un bouton "enregistrer".
Cependant, je voudrais "automatiser" tout ca, c'est à dire : - Simuler un clic sur le bouton "ajouter un article" de ce logiciel. - Injecter du texte dans les champs de saisie - Simuler un clic sur le bouton "Ajouter".
Je sais qu'il est possible via les API (il me semble) de récupérer toute les fenêtres ouverte à un instant T puis pouvoir lister tous les objets de cette fenêtre mais malheuresement, je ne sais pas faire ca.
Si quelqu'un pouvait me filer un coup de main
Merci
-- |
| |
| |
| | | |
|
| | |
| |
Posted on March, 27 2006 - 8:52 PM |
J'ai réussit à lister toute les fenêtres ouverte sous windows et donc à récupérer le handle que je recherchais. Maintenant est-ce que quelqu'un aurait une idée pour lister tout les composants de cette fenêtre ? (bouton, champ de saisie, etc...)
Tant qu'à faire si vous savez ensuite comment remplir un champ de saisie et cliquer sur un bouton, je suis prenneur.
Je signale au passage que l'autre appli n'est pas développé en windev et que l'exemple WD Envoi Touche ne répond pas à ce que je recherche
Merci à tous |
| |
| |
| | | |
|
| | |
| |
Posted on March, 28 2006 - 8:32 AM |
Bonjour,
Regardez les commandes : Evenement Postmessage()
Mais peut être un autre chemin peut vous sérvir : ( ou peut être une idée bête ? )
créez une variable globale gRepTxt est une chaine=Ton repertoire d'interception des fichiers textes créez un timer dans votre application 2 windev qui detecte la création d'1 nouveau fichier texte dans le repertoire gRepTxt
le fichier texte est envoyé par le 1er programme au meme repertoire ce fichier contient a chaque reprise le texte des articles a ajouter exp :"codeart;designation;codefamille;....;...; sur plusieur ligne et le fichier à chaque fois nomé "Fichier"+gauche(heuresys(),6) pour ne pas ecraser les anciens nouvelement créer puis dans le 2 eme programme à chaque fois que le timer detecte la presence d1 nouveau fichier txt le bloque puis lit ligne par ligne et envoie à la fentre article qui doit avoir à l'initialition : procedure fenArt("Création",txt="",AjoutLigne=0) si AjoutLigne=1 si txt<>"" codeart=extraitchaine(txt,1,";") designation=extraitchaine(txt,2,";") codefamille=extraitchaine(txt,3,";") ... executetraitement(Valide,trtclic) //n'oublier pas de fermer la fenetre à chaque création automatique d'article. fin fin
donc dans la procedure du timer on boucle sur les ligne du fichier texte et on fait : LigneLue="texte de la 1ere ligne lue" si fenetat(FicheArticle)=inexistante ouvre(FenArticle,"Création",LigneLue,1) sinon //la fenetre d'article est ouverte //on peut boucler jusqu'a la fermeture de celle-ci puis la ré-ouvrir à nouveau fin
puis à chaque fin de traitement supprime le ficheir texte traité.
et pour l'ouverture normal sans validation de la fenetre article on fait :
ouvre(FenArticle)
Bon Dev.
Ali Hindi : AliDev7@yahoo.fr |
| |
| |
| | | |
|
| | | | |
| | |
|