Bonjour,
J'ai une application WinDev qui lance un exe WinDev et je voudrais remplir automatiquement des champs de mon exe avec PiloteSaisie par exemple mais je n'ai pas accès aux champs de mon exe.
Est-ce-que quelqu'un à une idée?
Bonjour,
J'ai une application WinDev qui lance un exe WinDev et je voudrais remplir automatiquement des champs de mon exe avec PiloteSaisie par exemple mais je n'ai pas accès aux champs de mon exe.
Est-ce-que quelqu'un à une idée?
Vois l'aide sur LigneCommande, je pense que ça devrait te convenir.
Merci,
si j'ai bien compris, il faut que je passe des paramètres en ligne de commande quand je lance mon exe. Pour ensuite utiliser LigneCommande. Mais je ne vois pas ce qu'il faut mettre comme paramètre?
Dans LigneCommande je crois que tu peux passer ce que tu veux, si c'est bien une appli que tu veux lancer en la pré-remplissant (et pas remplir une appli déjà lancée), alors ça devrait te convenir
En fait, je veux lancer un exe et ensuite remplir les champs !
C'est possible ou pas?
À mon avis oui, mais à condition d'avoir accès aux champs en saisie.
Si l'application B ne permet pas la saisie (ce que j'ai compris), il ne sera pas possible de remplir des champs depuis l'application A.
Si elle permet la saisie, où est l'intérêt ?
En fait je veux faire des tests fonctionnels. Donc je cherche à écrire une application qui lance un exe puis remplisse des champs (qui sont en saisie bien sur !) pour ensuite récupérer des résultats et voir si ils correspondent à ceux que l'on attendait.
Bonjour,
Si vous voulez remplir automatiquement des champs, il faut retrouver le handle de la fenetre (FindWindow) et ensuite les handles des champs de saisies (Avec FindWindowExA je crois). Enfin, utiliser SetWindowText ou un SendMessage avec WM_SETTEXT pour remplir vos champs.
Bonne journée
Vincent
Je n'arrive pas à trouver le handle de mon exe.
Quand je lance mon application, je peux appeler mon exe que je veux tester avec LanceAppli mais quand je fais Handle() il me renvoie de la fenêtre de mon appli et non de la fenêtre de mon exe.
Voilà comment j'ai lancé mon exe :
LanceAppli("""C:\...\Exe\ProjetTestAutoSousWinDev.exe", exeActif,Faux,"C:\...\Exe")
Comment je peux faire pour prendre la main sur mon exe?
Bonjour,
Il faut trouver le handle de la fenetre de ton autre exe avec l API FindWindow FindWindow ("le titre de ta fenetre",Null). La fonction handle ne fonctionnera QUE sur la fenetre de l executable lancant l'autre executable (ton 1er executable).
Ensuite avec ce handle, il faut recuperer les handles de tes champs de saisies (je crois que c'est avec FindWindowEx mais la je ne suis pas certain) et utiliser une autre API pour leur envoyer du texte (SetWindowText ou SenMessage).
Quand je veux récupérer le handle de l'exécutable que je veux tester, cela me retourne 0.
Voici le code que j'ai mis : "Formulaire" est le titre de ma fenêtre
fen = API("user32","FindWindowA",Null,"Formulaire")
Par contre si je fais la même chose en mettant le nom de l'application de départ
fen = API("user32","FindWindowA",Null,"Logiciel de Test")
Cela me donne bien le handle.
Je ne comprend pas !
J'ai trouvé mon erreur, il fallait que j'attende que l'exécutable se lance. Il suffisait de faire Multitâche(10).
Je ne connais pas les API et sous WinDev l'aide est un peu limitée ! Et sur le net, je n'ai trouvé des infos qu'avec du vb.
Où est ce que je pourrais trouver de l'aide?
Bonjour,
Je n'arrive pas à récupérer le handle d'un champ. Cela me renvoie toujours 0.
Voici le code :
//HandleExe est le handle de ma fenêtre.
lpBName est chaîne ASCIIZ de 128
lpBClass est chaîne ASCIIZ de 128
lpBName="Nom" // Nom du champ de saisie
lpBClass="Edit" // Class
hdl est un entier
nNumEdit est un entier long=API("user32","FindWindowExA",HandleExe,hdl,&lpBName,&lpBClass)
Info("handle du champ "+hdl)
Je renouvelle ma question pour trouver de l'aide sur les API en WinDev car l'aide sous WinDev n'est pas très détaillée !
As tu essayé une recherche de FindWindowExA sous google ?
Oui bien sur que j'ai regardé sur google !
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager