J arrive pas a envoyer des messages à une autre fenetre
fana13
Messages postés12Date d'inscriptiondimanche 25 janvier 2004StatutMembreDernière intervention15 février 2004
-
26 janv. 2004 à 15:47
fana13
Messages postés12Date d'inscriptiondimanche 25 janvier 2004StatutMembreDernière intervention15 février 2004
-
27 janv. 2004 à 20:20
Salut a vous, j ai découvert le site hier soir en cherchant des info pour mon bout d application que je suis en train de faire.
Alors le but de celle-ci est de lancer une page internet explorer, puis à partir de celle-ci de faire des opérations simple (tapper des caractères dans une zone de saisie, cliquer sur des boutons).
Alors jusque là je suis arrivé a lancé ma page avec :
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 26 janv. 2004 à 15:53
"a partir de ce handle..." ???
mais je n'en vois aucun dans ton code si ce n'est m_hFenetre qui vaut NULL et le restera donc inutile.
ShellExecute() ne prenant pas de pointeur, aucun risque qu'il te remplisse un handle.
ciao...
BruNews, Admin CS.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 26 janv. 2004 à 17:10
Si tu lances un EnumWindows juste apres ShellExecute, la 1ere trouvee avec "IEFrame" en ClassName devrait etre la bonne.
C'est pour la methode code simple et NON 100% garanti mais devrait aller.
La sure et certaine, faut lancer par CreateProcess et tu pourras determiner la fenetre cree avec le pi.hTrhread.
C'est evidemment plus delicat mais pas si difficile.
fana13
Messages postés12Date d'inscriptiondimanche 25 janvier 2004StatutMembreDernière intervention15 février 2004 26 janv. 2004 à 17:48
Coucou c encore moi
Alors j'ai décidé d'utiliser CreateProcess
J'ai reussit a lancer explorer.exe, mais j arrive pas a demarrer directement sur la page qui m interresse :(, je peux arriver a m'en passer mais en utilisant PostMessage, mais qd j veux l utiliser je n peux pas et qd je met :: je n la voit meme pas.
A quoi ça peut etre due, merci ??
Un petit qui debute
Vous n’avez pas trouvé la réponse que vous recherchez ?
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 26 janv. 2004 à 18:03
Non tu ne dois pas te passer de quoi que ce soit.
Met en commentaire les lignes qui cherchent la fenetre, chaque chose en son temps. Faut d'abord trouver comment passer la page en param, quand sera bon tu me mettras la partie CreateProcess valide ici et on decoincera le reste.
OK ?
ciao...
BruNews, Admin CS.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 26 janv. 2004 à 21:37
Bon ça dit quoi ton affaire ?
J'ai fait un CreateProcess qui ouvre direct sur mon site, c'est donc possible.
Si blocage, dis sur quel point.
ciao...
BruNews, Admin CS.
fana13
Messages postés12Date d'inscriptiondimanche 25 janvier 2004StatutMembreDernière intervention15 février 2004 26 janv. 2004 à 22:56
1er chose : Merci a BruNews qui m'aide énormement.
2ieme chose : j'avais fait une petite pause pour me changer les idées. La solution que tu utilises pour la page d'internet explorer, commençait a me trotter dans la tête.
J'ai déjà due entendre ça quelque part, mais ça sert a quoi de fermer l'hundle sur la fenêtre (surtout que tu le fait a chaque fois apres avoir toucher à la fenêtre). C'est pour le laisser libre pour que autre application qui peut tourner en arrière plan puisse l'utiliser ????
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 26 janv. 2004 à 23:08
Quand je ferme un handle de fenetre ?
Un handle de fenetre ne se ferme pas, c'est un des rares d'ailleurs. C'est le systeme qui s'en occupe quand on detruit la fenetre.
ciao...
BruNews, Admin CS.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 26 janv. 2004 à 23:34
La ça va etre trop long a taper, je vais te passer 2 livres a etudier:
http://brunews.free.fr/ CP5.zip et CP5Sources.zip
JR4.zip et JR4Sources.zip
Faut commencer par CP5 qui est plus abordable.
La prog systeme (thread, processus etc...) est dans Richter, jette un oeil pour avoir un debut de reponse mais repasse de suite au Petzold car Richter presuppose que tu connais bien le mode GUI win32.
fana13
Messages postés12Date d'inscriptiondimanche 25 janvier 2004StatutMembreDernière intervention15 février 2004 26 janv. 2004 à 23:45
Bin dis donc t super calé toi !!!!
Ca t'arrive de bloquer sur des problèmes ????
C'est ton travail la programmation ???
Il me reste un dernier probleme que j'arrive pas a résoudre :
J'arrive pas a avoir la fonction PostMessage(), pourtant j'ai un autre projet où j'ai réussit à l'utiliser mais ça date de qq mois déjà. Alors j'aimerai savoir s'il y a des choses particulière à savoir (inclusion, héritage, ...)
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 26 janv. 2004 à 23:58
heritage n'a rien a faire avec PostMessage qui se differencie de SendMessage par son mode asynchrone, c'est a dire non blocant. La fonction retourne immediatement, elle ne fait que placer les params sur la file d'appels du thread cible.
Avec PostMessage on evite d'etre emmene dans le lantage eventuel du prog cible mais ne pas perdre de vue que certains messages peuvent etre supprimes ou alors traites bien plus tard, ce qui revient parfois au meme.
Tout dependra donc du type de message et de la cible.
ciao...
BruNews, Admin CS.
fana13
Messages postés12Date d'inscriptiondimanche 25 janvier 2004StatutMembreDernière intervention15 février 2004 27 janv. 2004 à 14:38
Coucou c encore moi
La c la dernière question apres j proposerai mon programme dans les sources :)
Alors j'ai ouvert une nouvelle fenêtre sur le site que je veux, j ai donc alors récupéré des info de celle-ci dans les variable si et pi. Mais pour ::PostMessage() il faut comme 1er paramètre un HWND, que j n c où retrouver.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 27 janv. 2004 à 15:00
C'est fait dans l'exemple que je t'ai mis en souce.
Au lieu de lui poster un message, j'ai changé son titre.
Va analyser le code et regarde comment je trouve le handle (HWND) de la 1ere fenetre de ce nouveau thread.
ciao...
BruNews, Admin CS.
fana13
Messages postés12Date d'inscriptiondimanche 25 janvier 2004StatutMembreDernière intervention15 février 2004 27 janv. 2004 à 20:20
Après avoir refait mon projet au propre, j'arrive a envoyer mes messages à ma nouvelle fenêtre, mais malheureusement j'ai mon hundle qui pointe sur la fenêtre en général (donc j peux modifier le nom de celle-ci) mais je voudrais savoir comment récupérer l'hundle sur la zone d'affichage (sous word c la fenêtre où l'on tappe le texte) où également appelé "internet explorer_server" sous spy++
Remarque cette zone à toujour le même num de style soit 56 000 000.
On doit pouvoir récupérer cet hundle avec threadID ou le ProcessId que j ai déjà au moment de créer la fenêtre.