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

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
africanos
Messages : 20
Inscription : lun. 04/févr./2008 18:44

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

Message 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
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Message par Ar-S »

Je n'en ai aucune idée mais je suis avide de voir la méthode si quelqu'un la propose.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message par Backup »

...
Dernière modification par Backup le lun. 18/août/2014 16:21, modifié 1 fois.
africanos
Messages : 20
Inscription : lun. 04/févr./2008 18:44

Message 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
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Message 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 .... :?
africanos
Messages : 20
Inscription : lun. 04/févr./2008 18:44

Message 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
Avatar de l’utilisateur
Fig
Messages : 1176
Inscription : jeu. 14/oct./2004 19:48

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

Message 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 !
Il y a deux méthodes pour écrire des programmes sans erreurs. Mais il n’y a que la troisième qui marche.
Version de PB : 6.00LTS - 64 bits
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

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

Message 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.
Répondre