Страница: 1 |
Вопрос: Получить список RAS соед-ий с помощью .Net | Добавлено: 22.09.05 23:01 |
Автор вопроса: ![]() |
Мне надо определить имеющиеся РАС - соединения и вывести их в комбобокс. /вин 2000 и ХР/
Также было бы неплохо определить их параметры. На первое есть ф-ця RasEnumEntries На второе RasGetEntryDialParams И вот работающий код от Мируса для ВБ 6 RasEnumEntries Но при переходе на дот нет я немогу правильно определить размер структуры. /ф-ция возвращает ошибку 632... ERROR_INVALID_SIZE - An incorrect structure size was detected./ Посмотрите пож-ста оба кода и подскажите что я не так делаю. Может у Вас есть другое решение Я полагаю проблема от части в замене ф-ции ЛенБ Дот нетовская ЛЕН возвращает какую то бурду. Всем спасибо. ПРимер ВБ: 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 Err 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) Err = 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 Declare Function RasEnumEntries Lib "rasapi32.dll" Alias "RasEnumEntriesA"(ByVal lpStrNull As String, ByVal lpszPhonebook As String, ByRef lprasentryname As RasEntryName, ByRef lpcb As Integer, ByRef lpCEntries As Integer) As Integer Private Structure RasEntryName Dim dwSize As Integer <VBFixedArray(256)> Dim szEntryName() As Byte Public Sub Initialize() ReDim szEntryName(256) End Sub End Structure Private Sub Form1_Load(ByVal eventSender As System.Object, ByVal eventArgs As System.EventArgs) Handles MyBase.Load Dim lConns As Integer Dim lSize As Integer Dim i As Short Dim Err As Integer Dim rasentry(64) As RasEntryName rasentry(0).dwSize = Len(rasentry(0)) lSize = rasentry(0).dwSize * 64 Call RasEnumEntries(vbNullString, vbNullString, rasentry(0), lSize, lConns) Err = RasEnumEntries(vbNullString, vbNullString, rasentry(0), lSize, lConns) 'For i = 0 To lConns - 1 'List1.AddItem ClearNulls(StrConv(rasentry(i).szEntryName, vbUnicode)) 'List1.Items.Add(rasentry(0).szEntryName) 'Next End Sub End Class |
Ответы | Всего ответов: 5 |
Номер ответа: 1 Автор ответа: ![]() ![]() ![]() ![]() ![]() ICQ: 247914358 Вопросов: 6 Ответов: 35 |
Профиль | Цитата | #1 | Добавлено: 22.09.05 23:20 |
Думаю что примеры надо было влючить вот в такую рамку
Иначе просто трудно "наместе" прочитать и осмыслить код. |
Номер ответа: 2 Автор ответа: ![]() ![]() ![]() ![]() Вопросов: 122 Ответов: 257 |
Профиль | Цитата | #2 | Добавлено: 22.09.05 23:34 |
Не ну это же надо, и тут же нашёл ответ. Его сделал один парень по имени Кэн. Надо сказать ничего общего с вышеприведенными моими потугами.
Я буду признателен тем кто поможет ещё доставать РАС-пароли под 2000/и ХР Imports System.Runtime.InteropServices Public Class Form1 Inherits System.Windows.Forms.Form /Тут кусок где Виндовская бурда/ Public Const RAS_MaxEntryName As Int32 = 257 Public Const MAX_PATH As Int32 = 260 <StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Unicode)> Public Structure RASENTRYNAME Public Size As Int32 <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=RAS_MaxEntryName + 1)> Public EntryName As String Public Flags As Int32 <MarshalAs(UnmanagedType.ByValTStr, SizeConst:=MAX_PATH + 1)> Public PhonebookPath As String End Structure Public Declare Auto Function RasEnumEntries Lib "rasapi32.dll" ( _ ByVal Reserved As String, _ ByVal Phonebook As String, _ <[In](), Out()> ByVal RasEntryNames() As RASENTRYNAME, _ ByRef CountOfBytes As Int32, _ ByRef CountOfEntries As Int32 _ ) As Int32 Public Function GetRasEntries() As RASENTRYNAME() Return GetRasEntries(Nothing) End Function Public Function GetRasEntries(ByVal Phonebook As String) As RASENTRYNAME() Return GetRasEntries(Phonebook, 1) End Function Private Function GetRasEntries(ByVal phonebook As String, ByVal count As Int32) As RASENTRYNAME() Dim entries() As RASENTRYNAME Dim size As Int32 = Marshal.SizeOf(GetType(RASENTRYNAME)) Dim rtn As Int32 Dim CountOfBytes As Int32 Dim CountOfEntries As Int32 = count ReDim entries(CountOfEntries - 1) entries(0).Size = size CountOfBytes = size * CountOfEntries rtn = RasEnumEntries(Nothing, phonebook, entries, CountOfBytes, CountOfEntries) If CountOfEntries > count Then Return GetRasEntries(phonebook, CountOfEntries) Else Return entries End If End Function Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim entries() As RASENTRYNAME = GetRasEntries() For i As Int32 = 0 To entries.Length - 1 ComboBox1.Items.Add(entries(i).EntryName) 'Console.WriteLine("{0}, {1}", entries(i).EntryName, entries(i).PhonebookPath) Next 'Console.ReadLine() End Sub |
Номер ответа: 3 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Лидер форума ICQ: 216865379 Вопросов: 106 Ответов: 9979 |
Web-сайт: Профиль | Цитата | #3 | Добавлено: 23.09.05 03:12 |
Смотри исходники pinch, там есть получение RAS-паролей. |
Номер ответа: 4 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() Разработчик Offline Client ICQ: 233286456 Вопросов: 34 Ответов: 5445 |
Web-сайт: Профиль | Цитата | #4 | Добавлено: 23.09.05 15:18 |
думаю что пароли ему точно ни к чему ![]() |
Номер ответа: 5 Автор ответа: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Лидер форума ICQ: 216865379 Вопросов: 106 Ответов: 9979 |
Web-сайт: Профиль | Цитата | #5 | Добавлено: 23.09.05 15:35 |
Почему? Я два пароля на Инет стырил с помощью выдранных и обнапильникированных исходников пинча ![]() |
Страница: 1 |
|