La Web del Programador: Comunidad de Programadores
 
    Pregunta:  22913 - CONTROLAR LOS MB CONSUMIDOS DURANTE LA CONEXION A INTERNET
Autor:  OvI WaNe
Soy un programador novatillo y me gustaria crearme una aplicacion que me controle los Mb transferidos por internet durante la conexion. Querria saber con que control o api puedo extraer estos datos del sistema en tiempo real

  Respuesta:  SuNcO
Con este codigo puedes ver varias cosas acerca de la conexion activa

Estas 2 son lo que tu buscas

Debug.Print stat.dwBytesRcved
Debug.Print stat.dwBytesXmited

Te lo pongo completo por si algo mas te sirve. Para cerrar una conexion puedes buscar en internet la palabra clave "RasHangUp"

Private Declare Function RasEnumConnections Lib "rasapi32" Alias "RasEnumConnectionsA" (ByVal lprasconn As Long, ByVal lpcb As Long, ByVal lpcConnections As Long) As Long
Private Declare Function RasGetConnectionStatistics Lib "rasapi32" (ByVal hRasConn As Long, ByVal lpStatistics As Long) As Long
Private Type RASCONN
dwSize As Long
hRasConn As Long
szEntryName(0 To 256) As Byte
szDeviceType(0 To 16) As Byte
szDeviceName(0 To 128) As Byte
pad As Byte
End Type
Private Type RAS_STATS
dwSize As Long
dwBytesXmited As Long
dwBytesRcved As Long
dwFramesXmited As Long
dwFramesRcved As Long
dwCrcErr As Long
dwTimeoutErr As Long
dwAlignmentErr As Long
dwHardwareOverrunErr As Long
dwFramingErr As Long
dwBufferOverrunErr As Long
dwCompressionRatioIn As Long
dwCompressionRatioOut As Long
dwBps As Long
dwConnectDuration As Long
End Type

Private Sub Form_Load()
Dim conn As RASCONN
Dim stat As RAS_STATS
Dim y As Long, z As Long

conn.dwSize = Len(conn)
y = conn.dwSize

If RasEnumConnections(VarPtr(conn), VarPtr(y), VarPtr(z)) = 0 Then
stat.dwSize = Len(stat)
If RasGetConnectionStatistics(conn.hRasConn, VarPtr(stat)) = 0 Then
'Debug.Print stat.dwAlignmentErr
'Debug.Print stat.dwBps
'Debug.Print stat.dwBufferOverrunErr
' ----- Datos Recibidos y Transmitidos
Debug.Print stat.dwBytesRcved
Debug.Print stat.dwBytesXmited
'Debug.Print stat.dwCompressionRatioIn
'Debug.Print stat.dwCompressionRatioOut
'Debug.Print stat.dwConnectDuration
'Debug.Print stat.dwCrcErr
'Debug.Print stat.dwFramesRcved
'Debug.Print stat.dwFramesXmited
'Debug.Print stat.dwFramingErr
'Debug.Print stat.dwTimeoutErr
End If
End If
End Sub