Dial-up и соединения...

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
goro
Постоялец
Постоялец
 
Сообщения: 494
Зарегистрирован: 03.12.2002 (Вт) 11:45
Откуда: Украина, Запорожье

Dial-up и соединения...

Сообщение goro » 06.07.2003 (Вс) 1:41

Привет всем.
Возник такая проблема. Как можно сделать, чтобы уже созданные в системе dial-up соединения выводились в ListBox и при клике на нем оно запускалось стандартым методом.
Заранее спасибо
ПРЕВЕД

Mirus
Бывалый
Бывалый
 
Сообщения: 259
Зарегистрирован: 09.12.2001 (Вс) 18:25
Откуда: Russia

Сообщение Mirus » 06.07.2003 (Вс) 12:18

Код: Выделить всё
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

goro
Постоялец
Постоялец
 
Сообщения: 494
Зарегистрирован: 03.12.2002 (Вт) 11:45
Откуда: Украина, Запорожье

Сообщение goro » 07.07.2003 (Пн) 0:10

Что то не работает твой пример. При ДаблКлике пишет что не нашел библиотеку rnaui.dll. У меня ХР стоит, может там другая библиотека?
ПРЕВЕД

Mirus
Бывалый
Бывалый
 
Сообщения: 259
Зарегистрирован: 09.12.2001 (Вс) 18:25
Откуда: Russia

Сообщение Mirus » 07.07.2003 (Пн) 17:57

В 98 работает! В XP пользуй RasDialDlg
Mirus

MEMBER
Гугль
Гугль
 
Сообщения: 758
Зарегистрирован: 29.11.2002 (Пт) 12:02
Откуда: 10 этаж

Сообщение MEMBER » 07.07.2003 (Пн) 18:25

Господа! Пользуйтесь www.ya.ru
ЗЫ и www.planetsourcecode.com

goro
Постоялец
Постоялец
 
Сообщения: 494
Зарегистрирован: 03.12.2002 (Вт) 11:45
Откуда: Украина, Запорожье

Сообщение goro » 07.07.2003 (Пн) 22:31

Mirus писал(а):В 98 работает! В XP пользуй RasDialDlg

Это как? Подскажи плиз!

Этот пример у меня тоже не работает. Когда нажимаю на кнопку то вообще ничего не происходит.
ПРЕВЕД

Mirus
Бывалый
Бывалый
 
Сообщения: 259
Зарегистрирован: 09.12.2001 (Вс) 18:25
Откуда: Russia

Сообщение Mirus » 07.07.2003 (Пн) 23:14

Код: Выделить всё
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
Mirus

goro
Постоялец
Постоялец
 
Сообщения: 494
Зарегистрирован: 03.12.2002 (Вт) 11:45
Откуда: Украина, Запорожье

Сообщение goro » 07.07.2003 (Пн) 23:21

2 Mirus and Member
Огромное спасибо за помощь, последний пример заработал!
ПРЕВЕД


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Google-бот и гости: 16

    TopList