Привет всем.
Возник такая проблема. Как можно сделать, чтобы уже созданные в системе dial-up соединения выводились в ListBox и при клике на нем оно запускалось стандартым методом.
Заранее спасибо
Option Explicit
Private Declare Function RasEnumEntries Lib "rasapi32.dll" Alias "RasEnumEntriesA" (ByVal lpStrNull As String, ByVal lpszPhonebook As String, lprasentryname As RasEntryName, lpcb As Long, lpCEntries As Long) As Long
Private Type RasEntryName
dwSize As Long
szEntryName(256) As Byte
End Type
Private Sub Form_Load()
Dim lConns As Long
Dim lSize As Long
Dim i As Integer
Dim rasentry(64) As RasEntryName
rasentry(0).dwSize = LenB(rasentry(0))
lSize = rasentry(0).dwSize * 64
Call RasEnumEntries(vbNullString, vbNullString, rasentry(0), lSize, lConns)
For i = 0 To lConns - 1
List1.AddItem ClearNulls(StrConv(rasentry(i).szEntryName, vbUnicode))
Next
End Sub
Private Function ClearNulls(ByVal strSource As String) As String
Dim iPos As Integer
iPos = InStr(strSource, Chr$(0))
If iPos <> 0 Then
ClearNulls = Left$(strSource, iPos - 1)
End If
End Function
Private Sub List1_DblClick()
Call Shell("rundll32.exe rnaui.DLL,RnaDial " & List1, 1)
End Sub
Mirus писал(а):В 98 работает! В XP пользуй RasDialDlg
Member писал(а):http://www.vbip.com/forum/topic.asp?id=2647
Private Declare Function RasEnumEntries Lib "rasapi32.dll" Alias "RasEnumEntriesA" (ByVal lpStrNull As String, ByVal lpszPhonebook As String, lprasentryname As RasEntryName, lpcb As Long, lpCEntries As Long) As Long
Private Declare Function RasDialDlg Lib "rasdlg.dll" Alias "RasDialDlgA" (ByVal lpszPhonebook As String, ByVal lpszEntry As String, ByVal lpszPhoneNumber As String, ByRef lpInfo As LPRASDIALDLG) As Long
Private Type LPRASDIALDLG
dwSize As Long
hwndOwner As Long
dwFlags As Long
xDlg As Long
yDlg As Long
dwSubEntry As Long
dwError As Long
Reserved As Long
reserved2 As Long
End Type
Private Type RasEntryName
dwSize As Long
szEntryName(256) As Byte
End Type
Private Sub Form_Load()
Dim lConns As Long
Dim lSize As Long
Dim i As Integer
Dim rasentry(64) As RasEntryName
rasentry(0).dwSize = LenB(rasentry(0))
lSize = rasentry(0).dwSize * 64
Call RasEnumEntries(vbNullString, vbNullString, rasentry(0), lSize, lConns)
For i = 0 To lConns - 1
List1.AddItem ClearNulls(StrConv(rasentry(i).szEntryName, vbUnicode))
Next
End Sub
Private Function ClearNulls(ByVal strSource As String) As String
Dim iPos As Integer
iPos = InStr(strSource, Chr$(0))
If iPos <> 0 Then
ClearNulls = Left$(strSource, iPos - 1)
End If
End Function
Private Sub List1_DblClick()
Dim Ras As LPRASDIALDLG
Ras.hwndOwner = Form1.hWnd
Ras.dwSize = Len(Ras)
Call RasDialDlg(vbNullString, List1, vbNullString, Ras)
End Sub
Сейчас этот форум просматривают: AhrefsBot, Google-бот и гости: 16