RE:Acceso Telefonico a redes
Incluye las siguientes declaraciones en un módulo:
Type RASDIALPARAMS
dwSize As Long
szEntryName As String * 257
szPhoneNumber As String * 129
szCallbackNumber As String * 129
szUserName As String * 257
szPassword As String * 257
szDomain As String * 16
End Type
Declare Function RasGetEntryDialParams Lib "RASAPI32.DLL" Alias "RasGetEntryDialParamsA" (lpszPhonebook As Any, lpRasDialParams As RASDIALPARAMS, lpfPassword As Long) As Long
Ahora, define la siguiente función:
Function ajustarTamañoEstructura(tamaño As Integer) As Integer
Dim n As Integer, l As Long
' Obtenemos el tamaño del equivalente a un entero en "C"
n = Len(l)
' Las estructuras tienen tamaños que son siempre múltiplos de
' una palabra de memoria (un número entero "C")
ajustarTamañoEstructura = ((tamaño + (n - 1)) \ n) * n
End Function
Con esto, utilizando un código semejante al siguiente, puedes saber si la conexión está definida:
Dim rdp As RASDIALPARAMS
Dim fPassword As Long
Dim r As Long
' Obtenemos los parámetros de la conexión
rdp.dwSize = ajustarTamañoEstructura(Len(rdp))
rdp.szEntryName = "Mi conexión" + vbNullChar ' Nombre de la conexión
r = RasGetEntryDialParams(ByVal 0&, rdp, fPassword)
If r = 0 Then
' La conexión existe
End If