Страница: 1 | 2 |
Вопрос: Опять я что-то забыл, хочу просмотреть VPNки в VB6
Добавлено: 13.11.12 17:35
Автор вопроса: Smith | ICQ: adamis@list.ru
Private Const RAS_MaxEntryName = 256
Private Const RAS_MaxDeviceName = 129
Private Const RAS_MaxDeviceType = 16
Private Type tRasConnA
dwSize As Long
hRasConn As Long
szEntryName(RAS_MaxEntryName) As Byte
szDeviceType(RAS_MaxDeviceType) As Byte
szDeviceName(RAS_MaxDeviceName) As Byte
End Type
Private Sub Form_Load()
Dim CONN() As tRasConnA
Dim lSiz As Long
Dim lMax As Long
Dim lRes As Long
ReDim CONN(3)
CONN(0).dwSize = Len(CONN(0))
lSiz = CONN(0).dwSize
lRes = RasEnumConnectionsA(CONN(0), lSiz, lMax)
MsgBox "Всего: " & lMax & vbCrLf & Byte2Text(CONN(0).szEntryName), , IIf(lRes = 0, "Успешно", "Ошибка")
End
End Sub
И сколько бы подключений не было, получаю только 1.
Ответы
Всего ответов: 27
Номер ответа: 1
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #1
Добавлено: 13.11.12 18:09
если я не ошибаюсь, RasEnumConnectionsA возвращает не существующие а именно АКТИВНЫЕ в текущий момент соединения
Номер ответа: 2
Автор ответа:
Smith
ICQ: adamis@list.ru
Вопросов: 153
Ответов: 3632
Профиль | | #2
Добавлено: 13.11.12 19:36
Не ошибаетесь...
Номер ответа: 3
Автор ответа:
Smith
ICQ: adamis@list.ru
Вопросов: 153
Ответов: 3632
Профиль | | #3
Добавлено: 14.11.12 09:38
Но бывает тоннель в тоннеле виснет.
Всплывает следующий больной вопрос.
Как создать новую запись в фонэбук.
Молча, без всплывающих окон и т.п.
Номер ответа: 4
Автор ответа:
Nash Bridges
Вопросов: 5
Ответов: 139
Профиль | | #4
Добавлено: 15.11.12 20:49
Той же функцией, что и открывает фонэбук.
Просто укажи не существующее имя.
Номер ответа: 5
Автор ответа:
Smith
ICQ: adamis@list.ru
Вопросов: 153
Ответов: 3632
Профиль | | #5
Добавлено: 16.11.12 10:58
Private Declare Function RasDialDlg Lib "RASDLG.DLL" Alias "RasDialDlgA" (ByVal lpszPhonebook As String, ByVal lpszEntry As String, ByVal lpszPhoneNumber As String, ByRef lpInfo As RASDIALDIALOG) As Long
Private Declare Function RasMonitorDlg Lib "RASDLG.DLL" Alias "RasMonitorDlgA" (ByVal lpszDeviceName As String, ByRef lpInfo As RASMONITORDIALOG) As Long
Private Declare Function RasEntryDlg Lib "RASDLG.DLL" Alias "RasEntryDlgA" (ByVal lpszPhonebook As String, ByVal lpszEntry As String, ByRef lpInfo As RASENTRYDIALOG) As Long
Хоть я и не пробовал, но все они очевидно завязаны на диалоги.
Номер ответа: 6
Автор ответа:
Smith
ICQ: adamis@list.ru
Вопросов: 153
Ответов: 3632
Профиль | | #6
Добавлено: 16.11.12 11:57
.dwSize = Len(EntryInfo)
.hwndOwner = OwnerFormHandle
.dwFlags = RASEDFLAG_NewEntry
ChangeBytes strEntryName, .szEntry
End With
Res = RasEntryDlg(strPhonebook, strEntryName, EntryInfo)
Возвращает 0, т.е. по идее успешно, а нового соединения нет.
Номер ответа: 7
Автор ответа:
Nash Bridges
Вопросов: 5
Ответов: 139
Профиль | | #7
Добавлено: 16.11.12 12:03
Не увидел. Тебе нужно соединение создать, а не новую книгу.
Этой создавай RasSetEntryProperties или этой RasSetEntryDialParams
Номер ответа: 8
Автор ответа:
Smith
ICQ: adamis@list.ru
Вопросов: 153
Ответов: 3632
Профиль | | #8
Добавлено: 17.11.12 15:16
Пробовал RasSetEntryDialParams, но видно что-то упустил.
Не создает.
Номер ответа: 9
Автор ответа:
Smith
ICQ: adamis@list.ru
Вопросов: 153
Ответов: 3632
Профиль | | #9
Добавлено: 19.11.12 17:18
Удаётся удалить и создать новое.
Только с типом пока беда, курю.
Номер ответа: 10
Автор ответа:
Smith
ICQ: adamis@list.ru
Вопросов: 153
Ответов: 3632
Профиль | | #10
Добавлено: 20.11.12 16:09
Запарился мудохать все эти константы, решил просто один раз копировать байтмассив существующего, прямыми руками настроенного подключения.
Осталась одна беда, немогу передать винде на постоянное хранение логин пароль. Как винде программно внушить, чтоб запомнила их для юзера?
Номер ответа: 11
Автор ответа:
Smith
ICQ: adamis@list.ru
Вопросов: 153
Ответов: 3632
Профиль | | #11
Добавлено: 25.12.12 13:06
Видимо никто никогда такого не делал.
Гуглом по форуму не могу найти.
Был пост про русификацию VBшных сообщений об ошибках.
Кто-то высчитал, что нужно с Err.Number'ом делать,
чтоб его FormatMessage правильно обрабатывал.
Номер ответа: 12
Автор ответа:
Nash Bridges
Вопросов: 5
Ответов: 139
Профиль | | #12
Добавлено: 26.12.12 20:10
Такое много кто делал и, наверное, делает.
Ты бы сказал, что не получается и что надо в итоге сделать.
Номер ответа: 13
Автор ответа:
Smith
ICQ: adamis@list.ru
Вопросов: 153
Ответов: 3632
Профиль | | #13
Добавлено: 26.12.12 21:51
Много кто делал, а найти никак не могу и не только на VBNET.
Как-то с помощью FormatMessage и FORMAT_MESSAGE_FROM_SYSTEM
из системы выуживались русские аналоги VBшных Err.Description.
Номер ответа: 14
Автор ответа:
Winand
Вопросов: 87
Ответов: 2795
Web-сайт:
Профиль | | #14
Добавлено: 26.12.12 22:22
Не думаю, что всё так, как есть на самом деле. Бейсик выдаёт ошибки виртуальной машины, а система системные.
http://msdn.microsoft.com/en-us/library/cc231199.aspx
http://www.halfile.com/vb.html
Номер ответа: 15
Автор ответа:
Nash Bridges
Вопросов: 5
Ответов: 139
Профиль | | #15
Добавлено: 26.12.12 23:29
Не очень понимаю про какие ошибки идет речь.
Если про ошибки RAS, то есть RasGetErrorString.
Соответственно, возвращает ошибки на языке системы.
Если надо вне зависимости от языка, то найди Сишный хедер RASa,
там все ошибки RAS константами обозначены, и делай свой select case.