'****************************************
'窗体上拖入两个listbox,两个commandbutton,均保留默认名称
'****************************************Private Const RAS_MaxDeviceType = 16
Private Const RAS95_MaxDeviceName = 128
Private Const RAS95_MaxEntryName = 256
Private Type RASCONN95
   'set dwsize to 412
   dwSize As Long
   hRasConn As Long
   szEntryName(RAS95_MaxEntryName) As Byte
   szDeviceType(RAS_MaxDeviceType) As Byte
   szDeviceName(RAS95_MaxDeviceName) As Byte
End Type
Private Type RASENTRYNAME95
   'set dwsize to 264
   dwSize As Long
   szEntryName(RAS95_MaxEntryName) As Byte
End Type
Private Type RASDEVINFO
   dwSize As Long
   szDeviceType(RAS_MaxDeviceType) As Byte
   szDeviceName(RAS95_MaxDeviceName) As Byte
End Type
Private Declare Function RasEnumDevices Lib "RasApi32.DLL" Alias "RasEnumDevicesA" (lprasdevinfo As Any, lpcb As Long, lpcConnections As Long) As Long
Private Declare Function RasEnumConnections Lib "RasApi32.DLL" Alias "RasEnumConnectionsA" (lprasconn As Any, lpcb As Long, lpcConnections As Long) As Long
Private Declare Function RasEnumEntries Lib "RasApi32.DLL" Alias "RasEnumEntriesA" (ByVal reserved As String, ByVal lpszPhonebook As String, lprasentryname As Any, lpcb As Long, lpcEntries As Long) As LongPrivate Sub Command1_Click()
   Dim a$
   'a$ = "rundll rnaui.dll,RnaDial " & List1.List(List1.ListIndex)
   ' NT Version
   a$ = "rasphone.exe " & Chr$(34) & List1.List(List1.ListIndex) & Chr$(34)
   Shell a$, vbNormalFocus
End SubPrivate Sub Command2_Click()
   Dim s As Long, l As Long, ln As Long, a$, b$
    
   b$ = List1.List(List1.ListIndex)
   ReDim R(255) As RASCONN95
    
   R(0).dwSize = 412
   s = 256 * R(0).dwSize
   l = RasEnumConnections(R(0), s, ln)
   For l = 0 To ln - 1
       a$ = StrConv(R(l).szEntryName(), vbUnicode)
       a$ = Left$(a$, InStr(a$, Chr$(0)) - 1)
       If a$ = b$ Then MsgBox "Connected (or connecting)!": Exit Sub
   Next
   MsgBox "Not Connected!"
End SubPrivate Sub Form_Load()
   Dim s As Long, l As Long, ln As Long, a$
   ReDim R(255) As RASENTRYNAME95
    
   R(0).dwSize = 264
   s = 256 * R(0).dwSize
   l = RasEnumEntries(vbNullString, vbNullString, R(0), s, ln)
   For l = 0 To ln - 1
       a$ = StrConv(R(l).szEntryName(), vbUnicode)
       List1.AddItem Left$(a$, InStr(a$, Chr$(0)) - 1)
   Next
   On Local Error Resume Next
   List1.ListIndex = 0
    
    
   ReDim Rd(255) As RASDEVINFO
    
   Rd(0).dwSize = Len(Rd(0)) + 3
   s = 256 * Rd(0).dwSize
   l = RasEnumDevices(Rd(0), s, ln)
   For l = 0 To ln - 1
       a$ = StrConv(Rd(l).szDeviceName(), vbUnicode)
       List2.AddItem Left$(a$, InStr(a$, Chr$(0)) - 1)
   Next
   List2.ListIndex = 0
End Sub
希望你能成功,当然别忘了feng哦。