PDA

Visualizza versione completa : Connessione di rete


Pierluigi
19-09-2002, 07.13.12
Salve, ho necessità di un comando in Vb5 che attivi una connessione di rete come quella che viene fatta manualmente da risorse del computer "connetti unità di rete"

esiste questo comando o si può sfruttare una caratteristica di rundll32??

Ho trovato sul forum una funzione di rundll32 che si chiama "wnerconnectdialog" ma questa mi fa apparire la finestra di connessione e poi sono io che devo proseguire manualmente.
Invece mi serviva un qualcosa che connettesse tutto in automatico.


Grazie

LoryOne
19-09-2002, 08.21.42
No, mi spiace !
Nulla di tutto ciò è possibile con VB, perchè non c'è nessuna istruzione bella e pronta da richiamare !

Quello che non si riesce a fare con VB lo fai con le API.

LoryOne
19-09-2002, 08.29.16
A tal proposito, ti consiglio di dare un'occhiata a questa due funzioni :

Declare Function WNetAddConnection2 Lib "mpr.dll" Alias "WNetAddConnection2A" (lpNetResource As NETRESOURCE, ByVal lpPassword As String, ByVal lpUserName As String, ByVal dwFlags As Long) As Long

e

Public Declare Function NetShareAdd Lib "netapi32.dll" (ByVal servername As Any, ByVal slevel As Long, buf As SHARE_INFO_502, ByVal cbbuf As Long) As Long

Pierluigi
20-09-2002, 20.15.51
Ti ringrazio dele informazioni, ma non sono tanto pratico di librerie.
l'unica cosa che sono riuscito a fare è questa:

in ambiente dos

rundll32 mpr,WNetAddConnection2A

e capisco che la routine esiste ma non riesco ad andare avanti perchè non conosco la sintassi per inserire gli altri dati.
Praticamente dovrei connettere il seguente drive .

w:\\pentium133\c$, ma non so come si fa.

puoi darmi altre indicazioni??

Grazie

Sergio Neddi
21-09-2002, 21.35.19
Si potrebbe anche fare da linea di comando con NET USE w: \\pentium133\c$

(notare lo spazio tra w: ed il nome UNC della risorsa condivisa)

LoryOne
22-09-2002, 12.05.28
Prova un po così:

Const WN_SUCCESS = 0 ' La chiamata alla funzione ha avuto successo.
Const WN_NET_ERROR = 2 'Si è verificato un'errore durante la chiamata alla funzione.
Const WN_BAD_PASSWORD = 6 ' La password non è valida.

'Dichiarazione API da riporatre paro paro
Private Declare Function WNetAddConnection Lib "mpr.dll" Alias "WNetAddConnectionA" (ByVal lpszNetPath As String, ByVal lpszPassword As String, ByVal lpszLocalName As String) As Long

'Funzione da richiamare
'Puoi cambiarle il nome se vuoi
Function AddConnection(MyShareName As String, MyPWD As String, UseLetter As String) As Integer
On Local Error GoTo AddConnection_Err
AddConnection = WNetAddConnection(MyShareName, MyPWD, UseLetter)
AddConnection_End:
Exit Function
AddConnection_Err:
AddConnection = Err
MsgBox Error$
Resume AddConnection_End
End Function

Private Sub Form_Load()
'Qui richiami la funzione con i parametri che desideri
variable = AddConnection(<SharePath>, <Password>, <DriveLetter>)
End Sub

Dai un'occhiata anche a questo sito

http://www.mvps.org/vbnet/

e dopo sarà tutto più facile !

Ciao
:cool:

Pierluigi
24-09-2002, 20.35.12
Ho provato le istruzioni, ma mi da errore " tipo non corrispondente" alla riga MyShareName
z$ = AddConnection(MyShareName, MyPWD, UseLetter)

provvisoriamente utilizzo le istruzioni "net use" ma anche quì ci sono delle cose da perfezionare in quanto mi si apre sempre una finstra dos che devo chiuder a mano.

Vi farò sapere come vanno le cose

Per ora grazie a tutti dei consigli

LoryOne
25-09-2002, 10.20.15
Controlla che :
MyShareName sia una stringa es:
MyShareName="\\pentium133\c$"

MyPWD sia una stringa
immettere vbnullstring se non esiste.

UseLetter sia una stringa es:
"W:"

Dim A as Long

MyShareName="\\pentium133\c$"
MyPWD=vbNullString
UseLetter="W:"

richiamare la funzione così
A=AddConnection(MyShareName, MyPWD, UseLetter)

Nb:AddConnection ritorna un valore Long, non stringa !!!!!

z$ = AddConnection(MyShareName, MyPWD, UseLetter)
ERRORE !!!!!!(W) (W) (W)

Pierluigi
30-09-2002, 23.33.43
Tutto ok. funziona benissimo.

Ti ringrazio dei suggerimenti che mi hai dato.

Ciao Marco