visual basic 6 et internet : demande d'informations. - Programmation
Marsh Posté le 06-07-2001 à 13:42:25
Personne pour m'aider. Je pense que c'est possible mais je sais pas du tout comment faire. Un peu d'aide (pas trop) ça serait sympa.
Marsh Posté le 06-07-2001 à 16:41:35
salut ca detecte juste si tu es connecté au net
Option Explicit
' déclarations api wininet dll
Private Declare Function InternetGetConnectedState Lib "wininet.dll" _
(lpdwFlags As Long, _
ByVal dwReserved As Long) As Long
Private Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" _
(ByVal lpszAgent As String, _
ByVal dwAccessType As Long, _
ByVal lpszProxyName As String, _
ByVal lpszProxyBypass As String, _
ByVal dwFlags As Long) As Long
Private Declare Function InternetOpenUrl Lib "wininet.dll" Alias "InternetOpenUrlA" _
(ByVal hInet As Long, _
ByVal lpszUrl As String, _
ByVal lpszHeaders As String, _
ByVal dwHeadersLength As Long, _
ByVal dwFlags As Long, _
ByVal dwContext As Long) As Long
Private Declare Function InternetCloseHandle Lib "wininet.dll" _
(ByVal hInet As Long) As Long
' constante - indique utilisation de la config de la Base de Registre
Private Const INTERNET_OPEN_TYPE_PRECONFIG = 0
' constantes - flags WinInet
Private Const INTERNET_FLAG_RELOAD = &H80000000
Private Const INTERNET_FLAG_KEEP_CONNECTION = &H400000
Private Const INTERNET_FLAG_NO_CACHE_WRITE = &H4000000
' constantes - flags pour InternetGetConnectedState
Private Const INTERNET_CONNECTION_MODEM = 1
Private Const INTERNET_CONNECTION_LAN = 2
Private Const INTERNET_CONNECTION_PROXY = 4
Private Const INTERNET_CONNECTION_MODEM_BUSY = 8
' énumération des états de connection
Public Enum InetConnectionStates
InternetConnectionModem = INTERNET_CONNECTION_MODEM
InternetConnectionLan = INTERNET_CONNECTION_LAN
InternetConnectionProxy = INTERNET_CONNECTION_PROXY
InternetConnectionModemBusy = INTERNET_CONNECTION_MODEM_BUSY
End Enum
' variables privées
Private m_Connection As Boolean
Private m_ModeConnection As InetConnectionStates
Private m_ModeConnectionDesc As String
Private m_SitesConnus As Collection
' initialisation
Private Sub Class_Initialize()
Set m_SitesConnus = New Collection
m_SitesConnus.Add "http://www.yahoo.com", "http://www.yahoo.com"
m_SitesConnus.Add "http://www.cnn.com", "http://www.cnn.com"
End Sub
'
Private Sub Class_Terminate()
Set m_SitesConnus = Nothing
End Sub
' propriétées publiques
Public Property Get TestSitesConnus() As Collection
Set TestSitesConnus = m_SitesConnus
End Property
Public Property Let TestSitesConnus(ByVal NewVal As Collection)
Set m_SitesConnus = NewVal
End Property
' propriétées publiques - en lecture seulement
Public Property Get Connected() As Boolean
Connected = m_Connection
End Property
'
Public Property Get ConnectMode() As InetConnectionStates
ConnectMode = m_ModeConnection
End Property
'
Public Property Get ConnectModeDesc() As String
ConnectModeDesc = m_ModeConnectionDesc
End Property
'
Public Sub Actualiser()
Dim Flags As Long
m_Connection = InternetGetConnectedState(Flags, 0&)
m_ModeConnection = Flags
If Flags And INTERNET_CONNECTION_MODEM Then
m_ModeConnectionDesc = "Modem"
If Flags And INTERNET_CONNECTION_MODEM_BUSY Then
m_ModeConnectionDesc = "Modem (Busy)"
m_Connection = TestUrls()
End If
ElseIf Flags And INTERNET_CONNECTION_LAN Then
m_ModeConnectionDesc = "LAN"
m_Connection = TestUrls()
ElseIf Flags And INTERNET_CONNECTION_PROXY Then
m_ModeConnectionDesc = "Proxy Server"
m_Connection = TestUrls()
End If
End Sub
' méthodes privées
Private Function TestUrls() As Boolean
Dim hInet As Long
Dim hUrl As Long
Dim Flags As Long
Dim url As Variant
' On va tester les URLs, si on arrive à se connecter à un des sites
' le PC est bien connecté.
hInet = InternetOpen(App.Title, INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, vbNullString, 0&)
If hInet Then
Flags = INTERNET_FLAG_KEEP_CONNECTION Or INTERNET_FLAG_NO_CACHE_WRITE Or INTERNET_FLAG_RELOAD
For Each url In m_SitesConnus
hUrl = InternetOpenUrl(hInet, CStr(url), vbNullString, 0, Flags, 0)
If hUrl Then
Call InternetCloseHandle(hUrl)
TestUrls = True
Exit For
End If
Next url
End If
Call InternetCloseHandle(hInet)
End Function
Marsh Posté le 06-07-2001 à 16:49:50
Ok merci beaucoup. Je vais m'y mettre maintenant.
Marsh Posté le 06-07-2001 à 19:12:22
j'ai carrément fait un ocx qui détecte ta connexion au Net (même à travers un LAN...)
si tu le veux : ICQ : 8622323
Marsh Posté le 05-07-2001 à 14:10:10
Est ce que c'est possible de savoir à partir d'une application VB6 si l'utilisateur est connecté à Internet et si c'est le cas lire une information précise située dans une page web. Par exemple savoir si une nouvelle version du logiciel est sorti et dans ce cas l'inviter à la télécharger.
---------------