'[Public] | [Private]
Declare Function RasEnumEntries Lib "RasApi32.dll" _ Alias "RasEnumEntriesA" (ByVal reserved As String, _ ByVal lpszPhonebook As String, lprasentryname As Any, _ lpcb As Long, lpcEntries As Long) As Long 'Esaminiamola in dettaglio: 'reserved: - parametro riservato: dev'essere Null 'lpszPhonebook: - parametro che indica il percorso del file .PBK (Solo Windows NT) 'lprasentryname: - puntatore ad una struttura di tipo RASENTRYNAME 'lpcb: - variabile che determina la grandezza (in bytes) di lprasentryname 'lpcEntries: - variabile che ritorna il numero delle connessioni 'La struttura RASENTRYNAME contiene il nome di ciascuna 'connessione, ed e' cosi' definita: '[Public] | [Private] Type RASENTRYNAME dwSize As Long szEntryName(RAS_MAXENTRYNAME) As Byte End Type 'dove: 'dwSize - specifica la grandezza della struttura (in bytes) 'szEntryName - specifica il nome della connessione 'RAS_MAXENTRYNAME - e' una costante (=256) 'Quindi la procedura per la determinazione delle connessioni 'esistenti e': 'Definisco le variabili Dim RASEntN_Size As Long 'che indichera' la grandezza della struttura Dim RASEntN_Numb As Long 'dove verra' memorizzato il numero di connessioni presenti Dim aaa As String, bbb As String ReDim RASEntN(255) As RASENTRYNAME 'Imposto la grandezza della struttura RASEntN(0).dwSize = 264 RASEntN_Size = 256 * RASEntN(0).dwSize aaa = RasEnumEntries(vbNullString, vbNullString, RASEntN(0), RASEntN_Size, RASEntN_Numb) 'A questo punto nella variabile RASEntN_Numb e' memorizzato 'il numero di connessioni presenti, quindi se volessi 'visualizzarle scriverei: For i = 0 To RASEntN_Numb - 1 bbb = StrConv(RASEntN(i).szEntryName(), vbUnicode) MsgBox Left(bbb, InStr(bbb, Chr(0)) - 1) Next i 'Si noti che il valore restituito da RASEntN(i).szEntryName() 'e' stato convertito in stringa secondo lo standard Unicode. 'Inoltre e' stata usata l'istruzione Left(bbb, InStr(bbb, 'Chr(0)) - 1) per eliminare i caratteri Null che "riempivano" 'la stringa fino al 256°+1 carattere. |