Loop Until Fin = True Or Ligne > Max - Len(Connecte)
End Sub
econs
Messages postés4030Date d'inscriptionmardi 13 mai 2003StatutMembreDernière intervention23 décembre 200824 14 déc. 2006 à 10:04
Salut,
Quand on a 3 Timers dans un programme, c'est généralement parce qu'il y a 2 Timers en trop.
Tu actualises toutes les 5 secondes => Ca, c'est OK.
Ensuite, 5 secondes plus tard, tu affiches le contenu de la page => Pas besoin de Timer. Si tu tiens à garder le délai, une simple pause suffit.
Ensuite, 5 secondes plus tard, tu affiches l'IP => Encore une fois, une simple pause suffit.
Les Timers servent à répéter périodiquement des opérations, quand on très pas très regardant sur la précision de l'intervalle. OK ici pour le premier, mais les deux autres sont mal utilisés, il n'y a pas de notion de période.
Regardes plutôt du côté de l'API Sleep().
Précises bien qu'il s'agit de code VB5.
hvb
Messages postés939Date d'inscriptionvendredi 25 octobre 2002StatutMembreDernière intervention27 janvier 20093 14 déc. 2006 à 09:34
Une requete GET sur whatismyip.org (ou un script php à toi fesant un simple echo de ton host), tu sais donc si tu es connecté, et ça marche pour touts les providers et surtout n'importe quelle config reseau locale, tout le monde ne laisse pas la livebox en 192.168.1.1
16 déc. 2006 à 01:39
Je ne comprends pas du tout l'utilisation des timers...
Perso, je les aurai supprimés et fait comme ça :
Private Sub Form_Load()
Dim Ligne, Ligne2, Max As Double
Dim Connecte As String
Dim Fin As Boolean
Fin = False
Web1.Navigate ("192.168.1.1") 'Affiche la page de la live box dans le Web1
Do Until Web1.Busy = False
DoEvents
Loop
Contenu.Text = Web1.Document.All.Item.innerHTML 'Récupere les information de la page dans le textbox Contenu
Connecte = "Connecté" 'Mot que l'on va rechercher
Max = Len(Contenu.Text) ' Compte combien il y a de caracteres dans le textbox Contenu
Ligne = 1
Do 'Boucle de recherche du mot connecte dans le text box contenu
If Mid(Contenu.Text, Ligne, Len(Connecte)) = Connecte Then
Ligne = Ligne + Len(Connecte) ' Dit ou se trouve le début de l'adresse IP
Ligne2 = Ligne ' idem
Fin = True 'Dit a la boucle N°1 que c'est plus la peine de chercher
Do ' boucle de recherche de la fin de l'adresse ip
Ligne2 = Ligne2 + 1
Loop Until Mid(Contenu.Text, Ligne2, 1) = "<" ' cherche la fin de l'adresse IP
Adresse.Text = Mid(Contenu.Text, Ligne, Ligne2 - Ligne)
End If
Ligne = Ligne + 1 ' Ajoute 1 a Ligne
Loop Until Fin = True Or Ligne > Max - Len(Connecte)
End Sub
14 déc. 2006 à 10:04
Quand on a 3 Timers dans un programme, c'est généralement parce qu'il y a 2 Timers en trop.
Tu actualises toutes les 5 secondes => Ca, c'est OK.
Ensuite, 5 secondes plus tard, tu affiches le contenu de la page => Pas besoin de Timer. Si tu tiens à garder le délai, une simple pause suffit.
Ensuite, 5 secondes plus tard, tu affiches l'IP => Encore une fois, une simple pause suffit.
Les Timers servent à répéter périodiquement des opérations, quand on très pas très regardant sur la précision de l'intervalle. OK ici pour le premier, mais les deux autres sont mal utilisés, il n'y a pas de notion de période.
Regardes plutôt du côté de l'API Sleep().
Précises bien qu'il s'agit de code VB5.
14 déc. 2006 à 09:34