ConnectRAS




'[Public] | [Private]

Declare Function RasDial Lib "RasApi32.DLL" _
Alias "RasDialA" (lpRasDialExtensions As Any, _
ByVal lpszPhonebook As String, _
lprasdialparams As Any, ByVal _
dwNotifierType As Long, lpvNotifier As Long, _
lphRasConn As Long) As Long

'dove:


'lpRasDialExtensions - ignorato in Windows9x, puntatore ad

' - una struttura di tipo RASDIALEXTENSIONS in NT

'lpszPhonebook - parametro che indica il percorso del file .PBK (Solo Windows NT)

'lprasdialparams - puntatore ad una struttura di tipo RASDIALPARAMS

'dwNotifierType - specifica l'origine del parametro lpvNotifier (Vedi piu' avanti)

'lpvNotifier - specifica l'handle della finestra od

' - il valore di ritorno della funzione

' - specificata nel parametro dwNotifierType (Vedi piu' avanti)

'lphRasConn - ritorna l'handle della connessione


'dwNotifierType puo' avere i seguenti valori:


'0xFFFFFFFF - lpvNotifier ha l'handle della finestra che riceve i messaggi da RasDial

'0 - lpvNotifier riceve il valore di ritorno della funzione RasDialFunc

'1 - lpvNotifier riceve il valore di ritorno della funzione RasDialFunc1

'2 - lpvNotifier riceve il valore di ritorno della funzione RasDialFunc2 (Solo Windows NT)


'Le dichiarazioni della struttura RASDIALEXTENSIONS che, in

'Windows NT, memorizza alcune informazioni aggiuntive per la

'connessione, sono:


'[Public] | [Private]


Type RASDIALEXTENSIONS
dwSize As Long
dwfOptions As Long
hwndParent As Long
reserved As Long
End Type

'dove:


'dwSize - specifica la grandezza della struttura

'ldwfOptions - specifica eventuali opzioni di connessione

'hwndParent - specifica l'handle della finestra che ricevera' i messaggi dalla connessione

'reserved - parametro riservato (0)


'mentre quelle di RASDIALPARAMS, contenente i parametri usati

'da RasDial sono:


'[Public] | [Private]


Type RASDIALPARAMS
dwSize As Long
szEntryName As String * RAS_MaxEntryName
szPhoneNumber As String * RAS_MaxPhoneNumber
szCallbackNumber As String * RAS_MaxCallbackNumber
szUserName As String * UNLEN
szPassword As String * PWLEN
szDomain As String * DNLEN
End Type

'dove:


'dwSize - specifica la grandezza della struttura

'szEntryName - imposta il nome della connessione

'szPhoneNumber - imposta il numero di telefono (se diverso da quello predefinito)

'szCallbackNumber -

'szUserName - imposta la username

'szPassword - imposta la password

'szDomain - specifica il dominio a cui richiedere l'autorizzazione d'accesso


'Quindi un esempio d'uso di questa funzione potrebbe essere

'il seguente:


Dim RasDialP As RASDIALPARAMS, ret As Long
With RasDialP
.dwSize = 1052
.szEntryName = NomeConnessione & vbNullChar
.szUserName = Username & vbNullChar
.szPassword = Password & vbNullChar
End With

aaa = RasDial(ByVal 0&, vbNullString, RasDialP, &HFFFF, Me.hWND, hRasConn)

'dove NomeConnessione e' il nome della connessione,

'Username e Password sono rispettivamente la username e la

'password che utilizza la connessione.

Ci sono due modi per avviare una connessione:
Uno e' con l'utilizzo dell'APE RasDial, l'altro e':
res = Shell("rundll32.exe rnaui.dll,RnaDial " & _
NomeConnessione, 1)

dove NomeConnessione e' un nome valido di connessione.
Se si utilizza Windows NT, allora bisogna utilizzare l'APE
RasDial, dal momento che l'altro metodo non funziona a causa
delle diverse DLL, ma se si e' in Windows9x, io sinceramente
prediligo la Shell, poiche' una struttura a cui punta la
funzione RasDial, ovvero RASDIALPARAMS, richiede, tra i suoi
parametri, l'immissione della Username e Password per il
collegamento. Ora, questo va benissimo in NT, dove, in
mancanza di questi parametri, vengono utilizzati i valori di
login al sistema, ma in Windows9x, l'utilizzo di quest'APE
risulta piu' scomodo.
In ogni caso riporto la definizione dell APE RasDial e delle
principali strutture ad essa collegate
(con un minimo commento tratto dal "Win32 Programmers
Reference", senza soffermarmi sui particolari, che peraltro
non ho completamente acquisito dal momento che non li ho mai
usati con NT (con Windows9x, come potrete vedere dall'esempio
sono necessari solo alcuni). Invito pertanto chiunque sia
interessato, a contattarmi per il completamento di questa

parte):











( connectras.html )- by Paolo Puglisi - Modifica del 17/12/2023