Erkennung einer DFÜ Verbindung

D4ktylu5

Grünschnabel
Ich hab ein kleines Prog gemacht. Es kann die Zeitlänge die man online ist stoppen, und schreibt diese in eine Protokoll datei und speichert das zuletztt verwendete Protokoll auch hinein (beim nächsten mal autom. aktiviert). Eigene Hilfe Datei und so en kramm es soll also gut werden ... und jetzt die Frage:

Wie kann mein Prog überprüfen ob eine DFÜ Verbindung besteht , also dass ich oline bin ?
 
ich hab hier mal was bei activevb gefunden. vielleicht hilft dir das ja weiter.

einfach die funktion dfüstatus aufrufen und du erhälst als rückgabewert true wenn du online bist und false wenn nicht.
dann das ganze noch in nen timer einbauen und fertig ist die
sache.

ps.: das funktioniert allerdings nur bei wählverbindungen also modem oder isdn und nicht bei dsl (glaub ich zumindest)

Code:
Option Explicit
Private Declare Function RasEnumConnections Lib "RasApi32.dll" _
        Alias "RasEnumConnectionsA" (lpRasCon As Any, lpcb As _
        Long, lpcConnections As Long) As Long
        
Private Declare Function RasGetConnectStatus Lib "RasApi32.dll" _
        Alias "RasGetConnectStatusA" (ByVal hRasCon As Long, _
        lpStatus As Any) As Long

Const RAS_MaxEntryName = 256
Const RAS_MaxDeviceType = 16
Const RAS_MaxDeviceName = 32

Private Type RASType
  dwSize As Long
  hRasCon As Long
  szEntryName(RAS_MaxEntryName) As Byte
  szDeviceType(RAS_MaxDeviceType) As Byte
  szDeviceName(RAS_MaxDeviceName) As Byte
End Type

Private Type RASStatusType
  dwSize As Long
  RasConnState As Long
  dwError As Long
  szDeviceType(RAS_MaxDeviceType) As Byte
  szDeviceName(RAS_MaxDeviceName) As Byte
End Type

Private Function DFÜStatus() As Boolean
  Dim RAS(255) As RASType, RASStatus As RASStatusType
  Dim lg&, lpcon&, Result&

    RAS(0).dwSize = 412
    lg = 256 * RAS(0).dwSize
    Result = RasEnumConnections(RAS(0), lg, lpcon)
    
    If lpcon = 0 Then
        DFÜStatus = False
    Else
        RASStatus.dwSize = 160
        Result = RasGetConnectStatus(RAS(0).hRasCon, RASStatus)
        If RASStatus.RasConnState = &H2000 Then
           DFÜStatus = True
        Else
           DFÜStatus = False
        End If
    End If
End Function
 
Zurück