HELP SVP webbrowser + onfocus + textarea

attaquevertical Messages postés 39 Date d'inscription jeudi 26 juin 2008 Statut Membre Dernière intervention 9 juillet 2009 - 13 mai 2009 à 18:26
 lediablo - 11 sept. 2010 à 18:41
bonjour,

J'utilise webbrowser et je voudrais remplir un champs textarea voilà mon code HTML :

<textarea cols="43" rows="4" onfocus="return wait_for_load(this, event, function() { if(!this._has_control){new TextAreaControl(this).setMaxLength(1000).setPlaceholderText(this.value).setAutogrow(true).onfocus();this._has_control=true} });"
 title="Écrire quelque chose..." style="overflow: hidden; height: 50px;" class="DOMControl_autogrow" id="wall_text" name="wall_text">Écrire quelque chose...</textarea>

il y a une autre partie de CODE où mon texte que je mets dans la balise textarea s'affiche. Mais ce code n'est pas présent dans le code Source de webbrowser. Je n'en n'ai aucune idée pourquoi. Il ne trouve pas se code :
<div style="font-size: 11px; font-family: &quot;lucida grande&quot;,tahoma,verdana,arial,sans-serif; width: 515px;" class="DOMControl_shadow">salut</div>

Avec onfocus de la première dans la première partie de code j'arrive me positionner dans le textarea de ma page mais je ne sais pas ensuite comment dire

à webbrowser d'écrire du texte où je me trouve avec la souris sur la page ...

 WebBrowser1.Document.All("wall_text").InvokeMember("focus")

Merci d'avance !

26 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
13 mai 2009 à 21:17
WebBrowser1.Document.getElementById("wall_text").innerText = "texte entre balises"
0
attaquevertical Messages postés 39 Date d'inscription jeudi 26 juin 2008 Statut Membre Dernière intervention 9 juillet 2009
14 mai 2009 à 09:11
Merci cela fonctionne mais le problème est que le texte est écrit en gris claire comme si il s'agissait d'un exemple.  Ensuite quand je veux cliquer sur le bouton cela me mets une erreur qui me dis que le textarea du dessus ne contient pas de texte.
0
attaquevertical Messages postés 39 Date d'inscription jeudi 26 juin 2008 Statut Membre Dernière intervention 9 juillet 2009
14 mai 2009 à 09:28
J'ai trouvé une solution un fois dans le textarea on peux faire un sendkey et envoyer notre texte comme ci dessous:

        Dim message As String
        Dim WshShell As Object

         WebBrowser1.Document.GetElementById("wall_text").InvokeMember("focus")
         WshShell = CreateObject("WScript.Shell")
         WshShell.SendKeys(message)
0
attaquevertical Messages postés 39 Date d'inscription jeudi 26 juin 2008 Statut Membre Dernière intervention 9 juillet 2009
14 mai 2009 à 11:12
enfaite ca ne fonctionne toujours pas car maintenant il m'écrit le texte n'importe ou si je ne suis pas dans le programme comment fait pour lui  dire d'écrire les sendKeys dans le webbrowser et a null par d'autre
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
14 mai 2009 à 11:42
d'où l'importance d'oublier SendKeys au plus vite ^^

tu peux utiliser :

http://www.vbfrance.com/codes/SENDKEYSEX-SIMULER-TOUCHE-DANS-FENETRE-PRECISE_41974.aspx

et cibler la fenetre du WebBrowser, ca devrait aller mieux
0
attaquevertical Messages postés 39 Date d'inscription jeudi 26 juin 2008 Statut Membre Dernière intervention 9 juillet 2009
14 mai 2009 à 12:28
ok je vais regarder mais ca m'as l'air bien compliqué ton code...
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
14 mai 2009 à 12:46
t'occupes pas du code...
tu as juste a trouver le handle du webbrowser, et faire

SendString monHandle, "ma chaine"
0
attaquevertical Messages postés 39 Date d'inscription jeudi 26 juin 2008 Statut Membre Dernière intervention 9 juillet 2009
14 mai 2009 à 13:05
mais je dois reprendre tout ton code ou juste noter ce que tu viens de me dire ?

qu est-ce que le handle ? le nom de mon webbrowser?
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
14 mai 2009 à 13:34
SendString WebBrowser1.hWnd, "ma chaine"

te faut reprendre tout le code, tel quel...
(sauf ce qui est propre a la Form1, qui n'est là que pour démonstration.

ca inclue donc les déclarations d'APIs, et les deux procédures (SendString et SendKeysEx)
0
attaquevertical Messages postés 39 Date d'inscription jeudi 26 juin 2008 Statut Membre Dernière intervention 9 juillet 2009
14 mai 2009 à 13:54
j'a un problème avec VBRUN.KeyCodeConstants qui n'est pas définit ...
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
14 mai 2009 à 13:58
tu bosses en .NET ?
0
attaquevertical Messages postés 39 Date d'inscription jeudi 26 juin 2008 Statut Membre Dernière intervention 9 juillet 2009
14 mai 2009 à 14:09
oui avec visual basic 2008

.NET Framework 3.5
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
14 mai 2009 à 14:14
mon code est à adapter, donc, car incompatible en l'état avec VB.Net


pour en revenir a ton probleme, modifier le textHTML de ta balise TextArea ne fait rien du tout ?????

étrange, tout de même.
0
attaquevertical Messages postés 39 Date d'inscription jeudi 26 juin 2008 Statut Membre Dernière intervention 9 juillet 2009
14 mai 2009 à 14:40
Bien enfaite le code que je prend viens de internet du site facebook donc je ne peux pas modifier.  je voudrais  écrire automatiquement sur le mur d'un groupe où c'est écrit "'Ecrire quelque chose..." en gris claire :

tu peut aller voir par toi même le code sur un groupe Facebook:

La balise de cette endroit quand tu n'ajoute pas de texte est  :

<textarea cols="43" rows="4" onfocus="return wait_for_load(this, event, function() { if(!this._has_control){new TextAreaControl(this).setMaxLength(1000).setPlaceholderText(this.value).setAutogrow(true).onfocus();this._has_control=true} });"
 title="Écrire quelque chose..." style="overflow: hidden; height: 50px;" class="DOMControl_autogrow" id="wall_text" name="wall_text">Écrire quelque chose...</textarea>

Avec webbrowser si tu modifie la value de ce textarea. La nouvelle valeur va apparaitre mais en gris claire et si tu clique sur le bouton "Publier" cela va te généré un erreur te disant "Pas de message sur le mur pour le moment.".

Ensuite j'ai été à la main modifier sur la page internet même. J'ai noté "salut" et j'ai regardé le code source. Impossible de trouver mon "salut" noté à quelque par.

Par hasard en sélectionnant toute ma page avec la souris et en faisant clique droite "voir le code source" j'ai remarqué que je devait sélectionner toute la ligne du bas :

de "Facebook ©2009http://www.facebook.com/advertising/?src=pf
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
14 mai 2009 à 14:52
j'ai pas accès à FaceBook
tentes en simulant divers evenements...

onkeypress
onkeyup
onchange
...

pour faire croire que le texte saisi l'est a partir du clavier.
eBay fait pareil, a certains endroits... en tatonnant un peu, on trouve et le javascript qui est derrière se met en route.
0
attaquevertical Messages postés 39 Date d'inscription jeudi 26 juin 2008 Statut Membre Dernière intervention 9 juillet 2009
14 mai 2009 à 15:22
mais je dois les stimuler dans mon webbrowser ?
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
14 mai 2009 à 15:26
possible via la méthode FireEvent de ton document
0
attaquevertical Messages postés 39 Date d'inscription jeudi 26 juin 2008 Statut Membre Dernière intervention 9 juillet 2009
14 mai 2009 à 15:59
je vais chercher alors mais pas facile
0
AXELMEDICAL Messages postés 96 Date d'inscription mercredi 26 mai 2010 Statut Membre Dernière intervention 27 mai 2010
21 mai 2009 à 03:31
Salut
as tu trouvez une solution j'ai un problemme similaire merci!!
0
attaquevertical Messages postés 39 Date d'inscription jeudi 26 juin 2008 Statut Membre Dernière intervention 9 juillet 2009
25 mai 2009 à 13:07
pour l'instant non j'ai laissé cela :

        Dim message As String
        Dim WshShell As Object

         WebBrowser1.Document.GetElementById("wall_text").InvokeMember("focus")
         WshShell = CreateObject("WScript.Shell")
         WshShell.SendKeys(message)

c'est fonctionnel mais bon tu peux plus toucher ton pc sinon le sendKeys écrit le message dans les autres fenêtres où tu te trouve.

Je suis en pleine période d'examen en ce moment donc j'ai laissé un peut le truc de coté mais d'ici 3 semaines  j'espère que je vais trouver une autre solution. si jamais je trouve je posterai le nouveau code. =)

A plus
0
Rejoignez-nous