Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Получить список RAS соед-ий с помощью .Net Добавлено: 22.09.05 23:01  

Автор вопроса:  student-uni
Мне надо определить имеющиеся РАС - соединения и вывести их в комбобокс. /вин 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
Автор ответа:
 Borisfen



ICQ: 247914358 

Вопросов: 6
Ответов: 35
 Профиль | | #1 Добавлено: 22.09.05 23:20
Думаю что примеры надо было влючить
вот в такую рамку

Иначе просто трудно "наместе" прочитать и осмыслить код.

Ответить

Номер ответа: 2
Автор ответа:
 student-uni



Вопросов: 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
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #3
Добавлено: 23.09.05 03:12
Смотри исходники pinch, там есть получение RAS-паролей.

Ответить

Номер ответа: 4
Автор ответа:
 sne



Разработчик Offline Client

ICQ: 233286456 

Вопросов: 34
Ответов: 5445
 Web-сайт: hw.t-k.ru
 Профиль | | #4
Добавлено: 23.09.05 15:18
думаю что пароли ему точно ни к чему :))

Ответить

Номер ответа: 5
Автор ответа:
 Sharp


Лидер форума

ICQ: 216865379 

Вопросов: 106
Ответов: 9979
 Web-сайт: sharpc.livejournal.com
 Профиль | | #5
Добавлено: 23.09.05 15:35
Почему? Я два пароля на Инет стырил с помощью выдранных и обнапильникированных исходников пинча :)

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам