'[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): |