Ecrire dans un formulaire IE [Résolu]

Messages postés
21
Date d'inscription
dimanche 27 avril 2003
Dernière intervention
26 juin 2009
- 21 mai 2008 à 17:40 - Dernière réponse :
Messages postés
647
Date d'inscription
mardi 22 avril 2003
Dernière intervention
9 janvier 2017
- 23 mai 2008 à 16:11
Bonjour,

Je viens vers vous car je n'arrive vraiment pas à solutionner mon problème... Je monte une petite appli pour ma boite, qui permettra en cliquant sur un bouton, d'ouvir le navigateur web par default, d'aller sur une page. Jusque là pas de problèmes. Ensuite dans cette page, il y a un formulaire bateau (login/pass). un javascript empeche de faire http://monsite.com/mapage.php?login=xxx&pass=xxx sinon je l'aurais fait bien évidemment.

Ma question est la suivante, Est-il possible et si oui comment que delphi puisse une fois la page chargée, remplir les deux champs qui se nomme USERNAME et PASSWORD et cliquer sur le bouton "login" afin que je puisse faire une sorte "d'auto-authentification"?

J'ai fais quelques tests en passant par les HANDLE, mais je n'arrive pas à accéder à ces fameux champs et encore moins au bouton...

Merci pour vos réponses
Afficher la suite 

Votre réponse

11 réponses

Meilleure réponse
Messages postés
647
Date d'inscription
mardi 22 avril 2003
Dernière intervention
9 janvier 2017
22 mai 2008 à 16:27
3
Merci
Bonjour,

En simulant les déplacements souris et les touches clavier il est possible
de remplir les cases souhaitées puis de valider .
ceci en utilisant les focntions :
keybd_Event(vk_tab,0,0,0);
keybd_Event(VK_NUMPAD4,0,0,0);
setCursorPos(X ,y ) ;
Mouse_Event(MOUSEEVENTF_Leftdown,0,0,0,0);
keybd_Event(VK_NUMPAD4,0,0,0);

Par contre avec une liste déroulante du type combobx quelle fonction utiliser ?

Merci

Merci yvessimon 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 93 internautes ce mois-ci

Commenter la réponse de yvessimon
Messages postés
11
Date d'inscription
dimanche 16 juillet 2006
Dernière intervention
16 juillet 2008
21 mai 2008 à 20:15
0
Merci
Plop mec,

Pour ce genre de programme je te conseillei plutôt d'aller voir du côté d'AutoIT,(remplir deux champs et cliquer sur un bouton avec delphi ca fait usine à gaz), c'est un petit language de scripting vraiment simple qui ressemble un peu au C/C++, et monstrueusement efficace, qui te permet de créer des GUI et de cliquer sur des zones à l'ecran, envoyer des caractères dans une form itou itou...  En un week end et avec les exemples fournis avec le log tu as fait le tour du bouzin, et y'a moyen de s'éclater . En plus tu peux compiler et sortir un petit exe.

Voici le lien : http://www.autoitscript.com/autoit3/

Bon courage et bon coding.

sky
Commenter la réponse de sky7rip
Messages postés
21
Date d'inscription
dimanche 27 avril 2003
Dernière intervention
26 juin 2009
21 mai 2008 à 20:55
0
Merci
Le probleme c'est que mon employeur a mis dans son cahier des charges.... delphi :) alors il faut que je trouve une solution... mais je vais jeter un oail a ton lien merci
Commenter la réponse de vmsn
Messages postés
4304
Date d'inscription
samedi 16 octobre 2004
Dernière intervention
9 mars 2018
21 mai 2008 à 21:29
0
Merci
Delphi > WebBrowser > charger la page > ensuite modifier le formulaire et send it.

<hr size="2" width="100%" />
Commenter la réponse de f0xi
Messages postés
21
Date d'inscription
dimanche 27 avril 2003
Dernière intervention
26 juin 2009
21 mai 2008 à 21:52
0
Merci
Oui mais je ne veux pas de browser dans l'appli mais simplement modifier un IE ou FF ouvert à l'extérieur...
Commenter la réponse de vmsn
Messages postés
316
Date d'inscription
vendredi 21 septembre 2007
Dernière intervention
6 février 2013
22 mai 2008 à 08:18
0
Merci
     Bonjour Vmsn,

   Jadis (y a quelques mois), j'eu fait un programme qui me permettait d'ouvrir une page internet, qui parcourait les champs de la page, et en fonction de leur nom (connus grace à la source de la page), si le nom du champs était par exemple "username", je lui assignais la valeur que je voulais, j'avais une case à cocher aussi que je cochais, puis je simulais un clic sur le bouton "envoyer" grace à son ID (connu aussi grace à la source), mais dans mon cas j'ouvrais la page dans un Webbrowser, mais peut être est-il possible d'utiliser la même méthode pour une page "exterieur" au programme en récupérant son handle ou le nom de la page ou je ne sais quoi, bref si ca t'interesse je pourrais peut être en retrouver la source et te mettre sur la voie...

   Bonne journée !

L'Art-Ment
Commenter la réponse de L_art_ment
Messages postés
21
Date d'inscription
dimanche 27 avril 2003
Dernière intervention
26 juin 2009
22 mai 2008 à 10:20
0
Merci
Ha oui je veux bien, c'est d'ailleurs dans cette voie que je me dirige actuellement... ou encore j'ai peut etre une autre solution : récupérer le HANDLE et avec des "sendmessage" envoyer des tabulations pour arriver aux champs voulus et y écrire ce qu'il faut.
Commenter la réponse de vmsn
Messages postés
21
Date d'inscription
dimanche 27 avril 2003
Dernière intervention
26 juin 2009
22 mai 2008 à 13:41
0
Merci
Donc voilà ou j'en suis actuellement : je vais appelé mon appli "A"

- A vérifie que IE est exécuté et qu'une de ses fenêtre à dans son titre "Authentification"
- Si non elle lance l'URL en question dans une nouvelle fenetre, Si oui elle cherche ses enfants pour trouvé la frame principale de IE puis scan cet enfant pour trouver la page principale de IE
- A met la fenetre IE au premier plan et donne le focus à la page.

Je suis maintenant bloqué, j'essaie de lancer une tabulation sur ma page pour me retrouver sur le premier champs mais pas de résultat, j'ai testé deux méthodes trouvées ici :

Keybd_event(VK_TAB, 0, KEYEVENTF_KEYUP, 0); apres avoir donné le focus à ma page

et

SendMessage(hEnfant, WM_KEYDOWN,VK_TAB,1);
SendMessage(hEnfant, WM_KEYUP,VK_TAB,1);

Aucune des deux méthodes ne fonctionne... je vais me faire hara kiri
Commenter la réponse de vmsn
Messages postés
4229
Date d'inscription
vendredi 23 juillet 2004
Dernière intervention
3 août 2018
22 mai 2008 à 14:14
0
Merci
Salut,

essaye comme ceci :
Keybd_event(VK_TAB, 0, 0, 0); // Key Down
puis
Keybd_event(VK_TAB, 0, KEYEVENTF_KEYUP, 0); // Key Up

mais je pense aussi que la méthode "externe" n'est pas facile voir impossible (pas de gestion d'erreurs, pas d'évènement de fin de chargement de page ... etc)
il serait préférable de passer par un TWebBrowser "en interne" ... en tout cas c'est plus simple ^^

 
@+
Cirec

<hr siz="" />
Commenter la réponse de Cirec
Messages postés
21
Date d'inscription
dimanche 27 avril 2003
Dernière intervention
26 juin 2009
22 mai 2008 à 19:15
0
Merci
Alors voila ou j'en suis, l'aide de cirec m'a bien aidée, je ne suis pas encore parvenu a rentré ce que je voulais exactement parce que quand j'ai fait F9 comme un idiot j'ai lancé le lancement du browser dans une boucle infinie... Delphi a planté, j'ai perdu le travail de la journée parce que comme un idiot(bis) j'avais pas enregistré... je mérite des claques, je reprends tout ca demain matin avec les remarques de yvessimon en plus et je vous tiens au courant
Commenter la réponse de vmsn
Messages postés
647
Date d'inscription
mardi 22 avril 2003
Dernière intervention
9 janvier 2017
23 mai 2008 à 16:11
0
Merci
Bonjour,
Pour Combobox je simule plusieurs fois une touche clavier avec la 1er lettre du combobox , ou je souhaite mepositionner.(le focus doit être sur ce Combobox).
En intercallant, bien sur, à chaque simulation clavier Application.prosseMessage.

Cela focntionne bien.
Merci pour cette aide.

et boncourage à VMSN (prévoire une touche de sauvegarde)

Saluttations
Commenter la réponse de yvessimon

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.