HTML vers VB6

Résolu
cs_cheyenne Messages postés 693 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 avril 2017 - 9 janv. 2010 à 17:58
cs_cheyenne Messages postés 693 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 avril 2017 - 12 janv. 2010 à 19:11
Bonjour,

Tout d'abord je vous souhaite à tous une excellente année 2010.

S'il est possible de remplir un InputBox d'une page html située dans un WebBrowser à l'aide de l'instruction WebBrowser.Document.All("toto").value = "tata" je cherche le moyen inverse.
En fait j'envoie des valeurs en VB6 dans des InputBox et le script lit cette valeur et une fonction en Java la récupère sur ordre quand j'envoie un click sur un bouton de type radio avec l'événement onclick.
Le scipt envoie également des valeurs dans d'autres InputBox et grâce à un timer je récupère ces valeurs dans mon appli en VB6.
Ce que je souhaite c'est que le script n'envoie pas ces valeurs dans les InputBox mais plutôt dans un Label mis sur la Form du WebBrowser, est-ce possible ?

Merci par avance de votre aide éventuelle car c'est un peu tordu comme truc.

Bonne soirée,
Cheyenne

8 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
12 janv. 2010 à 14:13
si l'inputbox est masquée
et si tu intercepte le changement de valeur, tu peux ensuite reporter la valeur dans le label de ton choix, le tout en VB

exemple rapide:

Option Explicit

Private WithEvents moInput As HTMLInputElement

Private Sub Form_Load()
    WebBrowser1.Navigate "http://www.google.fr"
End Sub

Private Function moInput_onchange() As Boolean
    Me.Caption = moInput.Value
    moInput_onchange = True
End Function

Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
    Set moInput = WebBrowser1.Document.getElementsByName("q")(0)
    Me.Caption = moInput.Value
End Sub




Renfield - Admin CodeS-SourceS - MVP Visual Basic
3
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
11 janv. 2010 à 14:19
j'ai pas tout compris

néanmoins, s'il s'agit de WebBrowser, tu à 100% la main sur TOUT
en gros, tu peux très bien modifier le code HTML à la volée pour en modifier le javascript, par exemple.

Renfield - Admin CodeS-SourceS - MVP Visual Basic
0
cs_cheyenne Messages postés 693 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 avril 2017 2
11 janv. 2010 à 18:38
Bonjour Renfield,

Merci de ta réponse, mais sans doute me suis-je mal exprimé !

1) en VB6 j'envoie des valeurs dans des InputBox HTML. Puis je commnande un bouton-radio HTML qui posséde un évènement onclick, ce qui appelle une fonction java qui lit et traite les valeurs des InputBox.

2) Lors de l'évolution de ces valeurs le script envoie les infos ainsi :
document.frm.vTOTO.value = x;
document.frm.vTATA.value = y;
Donc au lieu d'envoyer les valeur dans les InputBox nommés vTOTO et vTATA je souhaite envoyer ces valeurs dans des labels mis sur la feuille du WebBrowser.
Ceci pour éviter un timer qui intercepte les valeurs des InputBox tous les 100 mS.
Evidement en java frmTOTO!lblTOTO.Caption = x ne marche pas !.

Est-ce que cela est possible ou pas, si oui par quelles instructions ? C'est à la fois du Java et du VB6, HI

Bonne soirée,
Cheyenne
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
11 janv. 2010 à 22:54
JAVA

ou JavaScript ?


Renfield - Admin CodeS-SourceS - MVP Visual Basic
0

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

Posez votre question
cs_cheyenne Messages postés 693 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 avril 2017 2
12 janv. 2010 à 00:41
Re,

Exemple du script :

<script type='text/javascript'>
Function TITI() }
var toto = ParseFloat(document.frm.vTOTO.value);
var tata = ParseFloat( document.frm.vTATA.value);
for(i = 0; i < 360; i++) { }
}
</script>

Devines ! ne serait-ce pas du JavaScript ?
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
12 janv. 2010 à 08:56
Javascript, oui, mais puisque tu parlais de Java depuis le début, je voulais être sûr...

un timer pour intercepter les changements ?

ce timer est en VB6, j'imagine...

tu te compliques la tache , il est plus simple d'intercepter le onchange de ton InputElement


Renfield - Admin CodeS-SourceS - MVP Visual Basic
0
cs_cheyenne Messages postés 693 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 avril 2017 2
12 janv. 2010 à 13:54
Bonjour Renfield,

Oui, excuses-moi, effectivement le fait de ne parler que de Java prêtait à confusion et merci de te pencher sur mon problème.

Le timer est bien en VB6 et tous les 100 mS, quand une fonction du JavaScript est active, il récupère la valeur d'un InputBox par :
lblTOTO.Caption = WebBrowser.Document.All("vTOTO").Value

Ne sachant pas comment faire autrement, c'est le seul moyen que j'ai trouvé pour afficher la valeur lors de son changement dû à l'action d'une fonction dans le script. Action déclenchée depuis VB6.

A noter que les InputBox HTML ne sont pas visibles dans le WebBrowser car celui-ci est volontairement décalé en hauteur de façon à les cacher.

Ta suggestion est évidement bonne mais je ne sais pas comment faire pour intercepter la valeur de l'InputBox HTML quand celle-ci change. Il faut bien surveiller à partir de VB6 ce changement par un moyen quelconque.

Mais ma question initiale était de savoir si, à partir du JavaScript, il était possible d'écrire à partir du script une valeur dans un Label VB6 plutôt que dans InputBOX HTML.

Bonne journée à toi,
Cheyenne
0
cs_cheyenne Messages postés 693 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 avril 2017 2
12 janv. 2010 à 19:11
Ah ben un grand MERCI à toi Renfield.

C'est en fait le WithEvents qui me manquait avec ta function moInput_onchange().

J'ai une douzaine d'InputBox, je vais donc cibler celui qui change le plus souvent ce qui me permettra de relever en même temps les autres valeurs.

Grâce à toi me voilà tiré d'affaires, quoique ma solution fonctionnait très bien mais la tienne est nettement plus pro et bien plus élégante que d'utiliser un timer.
Avec toi, il n'y a jamais de problèmes mais que des solutions, HI

Encore MERCI et bonne continuation.

Bien amicalement de Cheyenne.
0
Rejoignez-nous