vmsn
Messages postés21Date d'inscriptiondimanche 27 avril 2003StatutMembreDernière intervention26 juin 2009
-
21 mai 2008 à 17:40
yvessimon
Messages postés637Date d'inscriptionmardi 22 avril 2003StatutMembreDerniè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...
yvessimon
Messages postés637Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention 9 janvier 2017 22 mai 2008 à 16:27
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 ?
sky7rip
Messages postés9Date d'inscriptiondimanche 16 juillet 2006StatutMembreDernière intervention16 juillet 2008 21 mai 2008 à 20:15
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.
vmsn
Messages postés21Date d'inscriptiondimanche 27 avril 2003StatutMembreDernière intervention26 juin 2009 21 mai 2008 à 20:55
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
L_art_ment
Messages postés302Date d'inscriptionvendredi 21 septembre 2007StatutMembreDernière intervention 6 février 2013 22 mai 2008 à 08:18
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...
vmsn
Messages postés21Date d'inscriptiondimanche 27 avril 2003StatutMembreDernière intervention26 juin 2009 22 mai 2008 à 10:20
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.
vmsn
Messages postés21Date d'inscriptiondimanche 27 avril 2003StatutMembreDernière intervention26 juin 2009 22 mai 2008 à 13:41
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
Cirec
Messages postés3833Date d'inscriptionvendredi 23 juillet 2004StatutModérateurDernière intervention18 septembre 202250 22 mai 2008 à 14:14
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 ^^
vmsn
Messages postés21Date d'inscriptiondimanche 27 avril 2003StatutMembreDernière intervention26 juin 2009 22 mai 2008 à 19:15
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
yvessimon
Messages postés637Date d'inscriptionmardi 22 avril 2003StatutMembreDernière intervention 9 janvier 2017 23 mai 2008 à 16:11
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)