PDA

Visualizza la versione completa : Rilevare connessione a internet


Calem82
27-06-2002, 15:45
Ho bisogno di realizzare un contascatti per internet, qualcuno mi sa spiegare come devo fare per rilevare se è la connessione è attiva?
Qualcuno mi sa anche spiegare come fare per eventualmente disconettere il pc da internet????

Ciao, Andrea

steno12
27-06-2002, 15:50
Questo codice controlla se c'è una connessione attiva oppure no.




Nella sezione Dichiarazioni
Public Const ERROR_SUCCESS = 0&
Public Const APINULL = 0&
Public Const HKEY_LOCAL_MACHINE = &H80000002
Public ReturnCode As Long

Declare Function RegCloseKey Lib "advapi32.dll" (ByVal _
hKey As Long) As Long

Declare Function RegOpenKey Lib "advapi32.dll" Alias _
"RegOpenKeyA" (ByVal hKey As Long, ByVal lpSubKey As _
String, phkResult As Long) As Long

Declare Function RegQueryValueEx Lib "advapi32.dll" Alias _
"RegQueryValueExA" (ByVal hKey As Long, ByVal lpValueName _
As String, ByVal lpReserved As Long, lpType As Long, _
lpData As Any, lpcbData As Long) As Long
Codice
Public Function ActiveConnection() As Boolean
Dim hKey As Long
Dim lpSubKey As String
Dim phkResult As Long
Dim lpValueName As String
Dim lpReserved As Long
Dim lpType As Long
Dim lpData As Long
Dim lpcbData As Long
ActiveConnection = False
lpSubKey = " System\CurrentControlSet\Services\Remote
Access"
ReturnCode = RegOpenKey(HKEY_LOCAL_MACHINE, lpSubKey, _
phkResult)

If ReturnCode = ERROR_SUCCESS Then
hKey = phkResult
lpValueName = "Remote Connection"
lpReserved = APINULL
lpType = APINULL
lpData = APINULL
lpcbData = APINULL
ReturnCode = RegQueryValueEx(hKey, lpValueName, _
lpReserved, lpType, ByVal lpData, lpcbData)
lpcbData = Len(lpData)
ReturnCode = RegQueryValueEx(hKey, lpValueName, _
lpReserved, lpType, lpData, lpcbData)

If ReturnCode = ERROR_SUCCESS Then
If lpData = 0 Then
ActiveConnection = False
Else
ActiveConnection = True
End If
End If
RegCloseKey (hKey)
End If
End Function
Usa la funzione ActiveConnection come nell'esempio:
If ActiveConnection = True then
MsgBox("Hai una connessione attiva.",vbInformation)
Else
MsgBox("Non hai una connessione attiva.", vbInformation)
End If


Buon lavoro............



link
homepage
http://%77%77%77%2e%74%77%6f%72%6b%2e%69%74/
software
http://%77%77%77%2e%74%77%6f%72%6b%.../programmi.html
forum
http://%77%77%77%2e%74%77%6f%72%6b%...rum/default.asp

Calem82
27-06-2002, 15:53
Ok...Grazie!

Calem82
27-06-2002, 17:09
Mi da un errore nelle dichiarazioni: mi dice che non sono ammesse come membri public di moduli di oggetto... devo forse mettere in un modulo BAS????

Ciao, Andrea

steno12
27-06-2002, 20:42
Mi scuso perchè in effetti tale codice non funziona, ma non è il mio e non l'avevo testato...................

questo funziona e controlla anche connessioni LAN , MOdem o Proxy


creaun nuovo progetto vuoto:

Interfaccia grafica:
immetti sul form:
un pulsante command1 con proprietà caption "Controlla"
una label1 indicizzata per 4 elementi:
label1(0).caption "Connesso in internet via MODEM"
label1(1).caption "Connesso in internet via LAN"
label1(2).caption "Connesso in internet via PROXY"
label1(3).caption "CONNESSO IN INTERNET"
label1(4).caption "Librerie RAS installate?"
5 textbox con la proprietà text (vuota):
text1.text la posizioni alla destra di label1(0).caption
text2.text la posizioni alla destra di label1(1).caption
text3.text la posizioni alla destra di label1(2).caption
text4.text la posizioni alla destra di label1(3).caption
text5.text la posizioni alla destra di label1(4).caption

incolla questo codice nel progetto vuoto:
'-----taglia da quì---------------
Option Explicit


Private Sub Command1_Click()
Text1 = ControllaStato(CONNESSO_LAN)
Text2 = ControllaStato(CONNESSO_MODEM)
Text3 = ControllaStato(CONNESSO_PROXY)
Text4 = ControllaStato(CONNESSO_ONLINE)
Text5 = ControllaStato(RAS_INSTALLTE)
End Sub

'---------a qui-------------------

Nel progetto aggiungi un Modulo.bas e incolla questo codice:

'-----taglia da quì----------------------
Option Explicit


Public Declare Function InternetGetConnectedState Lib "wininet.dll" (ByRef lpdwFlags As Long, ByVal dwReserved As Long) As Long
Public Const CONNESSO_MODEM As Long = &H1 'connesso via modem
Public Const CONNESSO_LAN As Long = &H2 'connesso via lan
Public Const CONNESSO_PROXY As Long = &H4 'connesso via proxy
Public Const CONNESSO_MODEM_OCCUPATO As Long = &H8 'variabile obsoleta
Public Const RAS_INSTALLTE As Long = &H10 'Librerie RAS installate
Public Const CONNESSO_OFFLINE As Long = &H20 ' non connesso
Public Const CONNESSO_ONLINE As Long = &H0 ' connesso
Function ControllaStato(Flag As Long) As Boolean
Dim dwflags As Long
Call InternetGetConnectedState(dwflags, 0&)
ControllaStato = dwflags And Flag
End Function
'------------a quì-----------------------





link
homepage
http://%77%77%77%2e%74%77%6f%72%6b%2e%69%74/
software
http://%77%77%77%2e%74%77%6f%72%6b%2e%69%74/programmi/programmi.html
forum
http://%77%77%77%2e%74%77%6f%72%6b%2e%69%74/public/twforum/default.asp

Calem82
27-06-2002, 21:01
OK...

Calem82
28-06-2002, 11:53
C'è qualcuno che mi sa anche spiegare come disconnettere il pc da internet utilizzando vb????


Ciao, Andrea

Loading