HTML vers VB6 [Résolu]

Messages postés
693
Date d'inscription
samedi 18 mai 2002
Dernière intervention
17 avril 2017
- - Dernière réponse : cs_cheyenne
Messages postés
693
Date d'inscription
samedi 18 mai 2002
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
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
3
Merci
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

Merci Renfield 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de Renfield
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
0
Merci
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
Commenter la réponse de Renfield
Messages postés
693
Date d'inscription
samedi 18 mai 2002
Dernière intervention
17 avril 2017
0
Merci
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
Commenter la réponse de cs_cheyenne
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
0
Merci
JAVA

ou JavaScript ?


Renfield - Admin CodeS-SourceS - MVP Visual Basic
Commenter la réponse de Renfield
Messages postés
693
Date d'inscription
samedi 18 mai 2002
Dernière intervention
17 avril 2017
0
Merci
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 ?
Commenter la réponse de cs_cheyenne
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
0
Merci
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
Commenter la réponse de Renfield
Messages postés
693
Date d'inscription
samedi 18 mai 2002
Dernière intervention
17 avril 2017
0
Merci
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
Commenter la réponse de cs_cheyenne
Messages postés
693
Date d'inscription
samedi 18 mai 2002
Dernière intervention
17 avril 2017
0
Merci
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.
Commenter la réponse de cs_cheyenne

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.