WNetAddConnection2

fab2526 Messages postés 1 Date d'inscription mardi 23 décembre 2003 Statut Membre Dernière intervention 14 janvier 2004 - 14 janv. 2004 à 17:49
CobayeVB Messages postés 2 Date d'inscription vendredi 5 mars 2004 Statut Membre Dernière intervention 5 mars 2004 - 5 mars 2004 à 10:49
Salut,

Je dois utiliser cette procédure pour connecter un lecteur réseau. Je crois que c’est le seul moyen pour faire une gestion des erreurs sur la connexion.

Malheureusement, lorsque je fais le test, il me note que lpNetResource n’est pas correct. Effectivement, elle n’est pas déclarée dans la structure NETRESOURCE.

Que faut-il faire pour faire fonctionner cette procédure ?

Merci d’avance pour votre aide.

A+

4 réponses

gaa179 Messages postés 361 Date d'inscription mercredi 21 mai 2003 Statut Membre Dernière intervention 12 novembre 2009 2
15 janv. 2004 à 09:14
Salut,

Voicu le code que j'utilise pour connecté un drive mapping avec les accès du user en cours:

Option Explicit

Const RESOURCETYPE_DISK = &H1

Public Const ERROR_ACCESS_DENIED = 5&
Public Const ERROR_ALREADY_ASSIGNED = 85&
Public Const ERROR_BAD_DEVICE = 1200&
Public Const ERROR_BAD_NET_NAME = 67&
Public Const ERROR_DEVICE_IN_USE = 2404&
Public Const ERROR_INVALID_PASSWORD = 86&
Public Const ERROR_MORE_DATA = 234 ' dderror
Public Const ERROR_NO_NETWORK = 1222&
Public Const ERROR_NO_NET_OR_BAD_PATH = 1203&
Public Const ERROR_NOT_CONNECTED = 2250&
Public Const NO_ERROR = 0 ' dderror

Public Const WN_ACCESS_DENIED = ERROR_ACCESS_DENIED
Public Const WN_ALREADY_CONNECTED = ERROR_ALREADY_ASSIGNED
Public Const WN_BAD_LOCALNAME = ERROR_BAD_DEVICE
Public Const WN_BAD_NETNAME = ERROR_BAD_NET_NAME
Public Const WN_BAD_PASSWORD = ERROR_INVALID_PASSWORD
Public Const WN_DEVICE_IN_USE = ERROR_DEVICE_IN_USE
Public Const WN_MORE_DATA = ERROR_MORE_DATA
Public Const WN_NO_ERROR = NO_ERROR
Public Const WN_NO_NET_OR_BAD_PATH = ERROR_NO_NET_OR_BAD_PATH
Public Const WN_NO_NETWORK = ERROR_NO_NETWORK
Public Const WN_NOT_CONNECTED = ERROR_NOT_CONNECTED
'Public Const WN_BAD_PROFILE = ERROR_BAD_PROFILE

Private Type NETRESOURCE
dwScope As Long
dwType As Long
dwDisplayType As Long
dwUsage As Long
lpLocalName As String
lpRemoteName As String
lpComment As String
lpProvider As String
End Type

Private 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
Private Declare Function WNetCancelConnection2 Lib "mpr.dll" Alias "WNetCancelConnection2A" (ByVal lpName As String, ByVal dwFlags As Long, ByVal fForce As Long) As Long

Public Function MapDrive(LocalDrive As String, RemoteName As String) As Long
Dim theNetResource As NETRESOURCE
Dim UserName As String
Dim UserPassword As String
UserName = Null
UserPassword = Null
With theNetResource
.dwType = RESOURCETYPE_DISK
.lpLocalName = LocalDrive
.lpRemoteName = RemoteName
End With
MapDrive = WNetAddConnection2(theNetResource, UserPassword, UserName, 0)
End Function
Public Function DisconnectDrive(LocalDrive As String) As Long
DisconnectDrive = WNetCancelConnection2(LocalDrive, 0, 0)
End Function

Si tu dois utiliser un user tu peux le rajouter dans les paramètres de la fonction

A+
0
CobayeVB Messages postés 2 Date d'inscription vendredi 5 mars 2004 Statut Membre Dernière intervention 5 mars 2004
5 mars 2004 à 10:30
Si j'utilise votre programme tel quel, j'obtiens une erreur "Invalid use of Null" à la ligne "Username = Null".

Par contre, si je remplace le Username et le Userpassword par une valeur, tout fonctionne très bien. Le problème, c'est que je voudrais faire un mapping en utilisant le nom et le mot de passe de l'utilisateur en cours...

Merci pour votre aide
0
gaa179 Messages postés 361 Date d'inscription mercredi 21 mai 2003 Statut Membre Dernière intervention 12 novembre 2009 2
5 mars 2004 à 10:42
Il te suffit des mettre les 2 lignes UserName = Null et UserPassword = Null en remarque.

A+
0
CobayeVB Messages postés 2 Date d'inscription vendredi 5 mars 2004 Statut Membre Dernière intervention 5 mars 2004
5 mars 2004 à 10:49
Impeccable ! Merci pour votre réponse
0
Rejoignez-nous