Page 1 sur 1

Encore le WebGadget ,récupérer le contenu des formulaires

Publié : dim. 17/févr./2008 23:44
par africanos
Bonjour tout le monde,
Deux petites questionc pour nos PurBasiciens:

1) j'ai un formulaire affiché par le webgadget . Comment est-ce que je pourrais faire pour récupérer le contenu des champs de ce formulaire ,dans des variables PureBasic?

2) Comment implémenter la proprièté Silent du WebGadget pour que le débogueur de script de windows ne traite pas les scripts de la page HTML en cas d'erreur dans ce script.

Un grand merci pour la lecture du message :D

Publié : lun. 18/févr./2008 0:04
par Ar-S
Je n'en ai aucune idée mais je suis avide de voir la méthode si quelqu'un la propose.

Publié : lun. 18/févr./2008 0:34
par Backup
...

Publié : lun. 18/févr./2008 17:58
par africanos
je pense que mon premier message n'est pas suffisament clair,alors je donne des exemples extraits de l'univers VisualBasic:
1) Après l’intégration du WebBrowser dans la feuille VB et la page HTML téléchargée ,on peut mettre le contenu du champ "textfield" dans la
variable Nom$ avec la seule ligne du code suivant:

Code : Tout sélectionner

Nom$=WebBrowser1.Document.All("textfield").Value
on peut aussi mettre à jour ce champ par le code suivant:

Code : Tout sélectionner

WebBrowser1.Document.All("textfield").Value = "VotreNom"
ou bien si on avait deux champs dans un formulaire,

Code : Tout sélectionner

With WebBrowser1.Document.frames.Item(1).Document
        .All("textfield1").Value = "Tony"
        .All("textfield2").Value = "Hello"
   End With
pour savoir si la checkbox "check1" est cochée ,voici le code:

Code : Tout sélectionner

If WebBrowser1.Document.Forms(0).elements("check1").Checked =      True Then
     MsgBox "La case check1 est cochée"
End If
évidemment on peut lire et changer les propriétées de tous les éléments d'une page HTML avec quelques lignes de code .

2) toujours dans Vb ,désactiver le debogueur de script sans passer par les preferences de l'InternetExplorer ,voici le code

Code : Tout sélectionner

Browser.Silent = True
j'espère que mes 2 questions en haut de cette page sontt claires
cad ,comment faire tous ça avec PureBasic. :?: :D

Publié : lun. 18/févr./2008 18:37
par Backup
comme je te l'ai indiqué (indirectement par le code posté) , la gestion du webgadget , est loin d'etre parfaite en PureBasic !!

peut etre dans des versions futurs .... :?

Publié : mar. 19/févr./2008 1:57
par africanos
salut;

Enfin une approche après une demie journée d'essais:

Code : Tout sélectionner

;             ************************************************************
;             *                Auteur: Africanos                         *
;             *                  Le 19-02-2008  à 00h50                  *
;             *       change de données entre page HTML et PureBasic     *
;             ************************************************************
Enumeration
  #Window_0
EndEnumeration

Enumeration
  #Web_0
  ;#Button_1
  #Button_2
  #String_3
  #String_4
EndEnumeration

Declare.s userInterfacePage1()
Global flag.l=0 
Global texte.s,sortie.s
Procedure WebGadgetCallback(Gadget, Url.s)

              

                 sortie=""
             If Left(UCase(url),15)="ABOUT:BLANK#NOM"
                  texte=Mid(url,16,Len(url)-15)
                  texte=ReplaceString(texte, "%20"," ")
                  flag=1
                  sortie=""
                  
              EndIf
              If Left(UCase(url),15)="ABOUT:BLANK#OUT"
                  ;texte=Mid(url,4,Len(url)-3)
                  flag=2
                  sortie=GetGadgetText(#String_4)
              EndIf
         
  ProcedureReturn #True
EndProcedure

Procedure OpenWindow_Window_0()
  If OpenWindow(#Window_0, 10, 100, 479, 347, "                        AFRICANOS WEBGADGET", #PB_Window_SystemMenu|#PB_Window_SizeGadget|#PB_Window_MinimizeGadget|#PB_Window_TitleBar)
    If CreateGadgetList(WindowID(#Window_0))
      WebGadget(#Web_0, 5, 0, 455, 265, "");"about:WebGadget_0"
      SetGadgetItemText(#Web_0, #PB_Web_HtmlCode, userInterfacePage1())
      SetGadgetAttribute(#Web_0, #PB_Web_NavigationCallback, @WebGadgetCallback())
      
;       ButtonGadget(#Button_1, 10, 275, 90, 25, "Gadget_1")
     TextGadget(#Button_2, 40, 315, 150, 25, "Ecrivez ici votre texte:")
      StringGadget(#String_3, 160, 275, 140, 25, "")
      StringGadget(#String_4, 160, 310, 140, 25, "")
    EndIf
  EndIf
EndProcedure         

OpenWindow_Window_0()

;{- Event loop
Repeat
  Select WaitWindowEvent()
  
    Case #PB_Event_Gadget
      Select EventGadget()
        Case #Web_0
               
             Select flag
                    Case 1
                        SetGadgetItemText(#Web_0, #PB_Web_HtmlCode, userInterfacePage1())
                        SetGadgetText(#String_3,texte)
                        flag = 0
                    Case 2
                       SetGadgetItemText(#Web_0, #PB_Web_HtmlCode, userInterfacePage1())
                       flag = 0
             EndSelect
        
      EndSelect
    ; ////////////////////////
    Case #PB_Event_CloseWindow
      Select EventWindow()
        Case #Window_0
          CloseWindow(#Window_0)
          Break
      EndSelect
  EndSelect
ForEver
;
;}
Procedure.s userInterfacepage1()

      PageHtml :
      html.s=html.s +"<HTML><BODY bgcolor="+#DQUOTE$+"#66CCFF"+#DQUOTE$+"><FORM NAME="+#DQUOTE$+"form2"+#DQUOTE$+">"+#CR$
      html.s=html.s +"<INPUT TYPE="+#DQUOTE$+"text"+#DQUOTE$+ "NAME="+#DQUOTE$+"input"+#DQUOTE$+ "VALUE="+#DQUOTE$+#DQUOTE$+"> Zone de texte d'entrée <BR>"+#CR$
      html.s=html.s +"<INPUT TYPE="+#DQUOTE$+"button"+#DQUOTE$+ "NAME="+#DQUOTE$+"bouton"+#DQUOTE$+ "VALUE="+#DQUOTE$+"HTML---->PB"+#DQUOTE$+ "onClick='window.location.href="+#DQUOTE$+"#nom"+#DQUOTE$+"+document. form2.input.value'><BR>"+#CR$
      html.s=html.s +"<INPUT TYPE="+#DQUOTE$+"text"+#DQUOTE$+ "NAME="+#DQUOTE$+"output"+#DQUOTE$+ "VALUE="+#DQUOTE$+sortie+#DQUOTE$+"> Zone de texte de sortie <BR>"+#CR$
      html.s=html.s +"<INPUT TYPE="+#DQUOTE$+"button"+#DQUOTE$+ "NAME="+#DQUOTE$+"bouton"+#DQUOTE$+ "VALUE="+#DQUOTE$+"PB---->HTML"+#DQUOTE$+ "onClick='window.location.href="+#DQUOTE$+"#out"+#DQUOTE$+"'><BR></FORM></BODY></HTML>"
        ProcedureReturn html   
     
EndProcedure
Enjoy :D

Re: Encore le WebGadget ,récupérer le contenu des formulaire

Publié : jeu. 14/nov./2013 17:43
par Fig
Très bon boulot, Dobro, comme d'habitude !

J'avais un souci avce le webgadget qui me sortait des erreurs, grace à ta procedure je suis sorti d'affaire ! 8)
C'est précieux !

Re: Encore le WebGadget ,récupérer le contenu des formulaire

Publié : jeu. 14/nov./2013 19:05
par nico
Perso j'utilise les interfaces pour récupérer et modifier les informations tout comme l'exemple en VB que tu as posté mais c'est costaud, j'utilise toujours les mêmes procédures depuis le code que j'ai posté "auto login" ici: http://www.purebasic.fr/french/viewtopi ... m&start=15

Si t'as un problème d'adaptation, fais moi signe.