j'ai bricolé un petit outil réseau qui affiche ip WAN, LAN , nom du poste ; il doit y en avoir déjà des centaines comme ça , c'est pour mon usage personnel,
c'est pour travailler la gestion des évènements dans les forms, étant habitué aux frameworks de dev où il suffit de cliquer dans le gadget edit pour que la fonction se créée auto dans le code, je voulais voir ce que ça peut donner en PB,
Je rencontre un problème très simple (grrrrr ! ) j'ai sur un buttongadget en txt l'url du site web pour récupérer l'ip WAN, je ne connais pas d'autres possibilité que de parser dans une page web ;
Pour l'ip Lan, je pensais taper dans l'API windows ou le registre, enfin plein de solutions pour ça mais oh surprise il existe ExamineIPAddresses() et NextIPAddress() !! on va donc pas réinventer la roue,
pour le WAN
quand je clique sur le bouton, je veux que l'url change, de http://www.monip.fr à http://www.monip.org par ex,
j'arrive à le faire changer mais sur 5 possibilités mon prog reste bloqué sur le deuxième choix,
je poste mon code, si vous pouvez m'éclairer !! je vous en remercie d'avance,
Code : Tout sélectionner
;PureBasic 
;Basic Net tool 
;JmG49@2014
Enumeration 0 ; Id. Fenêtres
  #FENETRE1
EndEnumeration
Enumeration 0 ; Id. Gadgets
   #FEN1_GETIP
   #FEN1_QUIT 
   #FEN1_SITE
   #FEN1_edit1
   #FEN1_edit2
   #FEN1_edit3
   #FEN1_edit4
EndEnumeration
 
InitNetwork()
Global Buffer.s
site0.s ="www.monip.org"
site1.s ="www.monip.fr"
site2.s ="www.monip.eu"
site3.s ="www.frameip.com"
site4.s ="www.hostip.fr"
 
If OpenWindow(#FENETRE1, 320, 200, 570, 150, "PureBasic - Network Utility: IP Adresses (JmG@2014)", #PB_Window_SystemMenu|#PB_Window_ScreenCentered)
   
   
      ButtonGadget(#FEN1_GETIP, 200, 10, 130, 20, "Get Ip")
      ButtonGadget(#FEN1_QUIT, 350, 10, 70, 20, "Quit")
      ButtonGadget(#FEN1_SITE, 10, 10, 170, 20, site0.s)
      EditorGadget(#FEN1_edit1, 120, 40, 150, 20)
      EditorGadget(#FEN1_edit2, 300, 40, 160, 20)
      EditorGadget(#FEN1_edit3, 120, 80, 150, 20)
      EditorGadget(#FEN1_edit4, 300, 80, 160, 20)
      TextGadget(#PB_Any, 0, 40, 100, 20, "  Local IP Address")
      TextGadget(#PB_Any, 0, 80, 100, 20, "  Wan IP Address")
      
    EndIf
  
    
Procedure GetWanIp()
  Protected Ip.s, IP1.i, IP2.i, IP3.i,IP4.i
 
  IP = StringField(Trim(Mid(Buffer, 1, 15)), 1, "<")
 
  IP1 = Val(StringField(IP, 1, "."))
  IP2 = Val(StringField(IP, 2, "."))
  IP3 = Val(StringField(IP, 3, "."))
  IP4 = Val(StringField(IP, 4, "."))
  ProcedureReturn MakeIPAddress(IP1, IP2, IP3, IP4)
EndProcedure    
    
    
    
Procedure Initweb()
   
   Protected File.l
 
  ReceiveHTTPFile(GetGadgetText(#FEN1_SITE), "index.php")
 
  File=ReadFile(#PB_Any, "index.php")
 
  If File
    While Eof(File)=0
      Buffer=ReadString(File)
      If FindString(Buffer, "IP :")
        Buffer=Trim(Mid(Buffer, 40))
      EndIf
    Wend
    CloseFile(File)
  EndIf
EndProcedure 
  
Procedure.s GetIp() 
    
    If InitNetwork()   
      
      ExamineIPAddresses()
      
      Result2 = NextIPAddress()
      
      ProcedureReturn IPString(Result2)
    
  EndIf
    
EndProcedure    
    
  
 Repeat
      
      Evenement.l = WaitWindowEvent()
      
      Select EventWindow()
         
          ;==============================================
         ;-EVENTS
          ;==============================================
         
 Case #FENETRE1
         
     Select Evenement
            
                Case #PB_Event_Gadget
            
     Select EventGadget()
                
                Case #FEN1_QUIT
                
                  result = MessageRequester("Dialog", "Do you really want to quit ?", #PB_MessageRequester_YesNo )
                  
                  If result= 6 
                
                Break
                
              EndIf
                
                
                
               
                Case #FEN1_GETIP
                  
                  
                  
                  ClearGadgetItems(#FEN1_edit1)
                  ClearGadgetItems(#FEN1_edit2)
                  ClearGadgetItems(#FEN1_edit3)
                  
                  Initweb()
                  SetGadgetItemText(#FEN1_edit3,1,IPString(GetWanIp()))
                  
                                                     
                  
                  GetIp()   
                  
                  SetGadgetItemText(#FEN1_edit1,1, GetIp())
                  SetGadgetItemText(#FEN1_edit2,1,GetEnvironmentVariable("COMPUTERNAME"))
                  
                  
                  
                  
                Case #FEN1_SITE
                   
                   SetGadgetText(#FEN1_SITE, site0.s)
                   SetGadgetText(#FEN1_SITE, site1.s)
                   SetGadgetText(#FEN1_SITE, site2.s)              
                   SetGadgetText(#FEN1_SITE, site3.s)               
                   SetGadgetText(#FEN1_SITE, site4.s)
                  
                  
      EndSelect   ; end of test gadget events 
            
                Case #PB_Event_CloseWindow
                  
                    Break
            
      EndSelect    
        
        
      EndSelect 
      
ForEver   
;epb
    



 , allez j'implémente !!
 , allez j'implémente !! oui moisi certainement, mais  hé ho j'ai la licence que depuis la semaine dernière !!!!
 oui moisi certainement, mais  hé ho j'ai la licence que depuis la semaine dernière !!!!