Mapper un disque réseau

Soyez le premier à donner votre avis sur cette source.

Snippet vu 28 471 fois - Téléchargée 27 fois

Contenu du snippet

Ce code permet de mapper un disque réseau, on peut également indiquer le nom d'utilisateur et son mot de passe pour la connection au disque !
Déroulement du code :
- vérification de l'existence d'un disque à la lettre spécifié
- si il n'existe pas mappe le disque à cette lettre
- si il existe deconnection du disque et connection du nouveau

J'utilise ce code dans mes traitements qui ont besoin de récupérer ou déposer des fichiers sur des disques réseaux.
Je mappe les disques à partir du code car en les mappant "manuellement" dans l'explorateur il arrivait souvent au bout d'un certains que les disques "sautent", ainsi je remappe les disques de manières automatique à chaque utilisation de mes traitements !

Je trouve cette manière plus pratique qu'utiliser le net use, de plus la remontée d'erreur est vraiment performante, je sais quand :
- le compte utilisateur est bloqué
- le disque est mappé sur une autre lettre
- le chemin réseau est introuvable, etc...

Source / Exemple :


Function MapDisk(ByVal DriveMap As Object, ByVal Path As Object)
        'Déclaration des objets
        Dim objNet, objFSO As Object

        Try
            'Instanciation des objets
            'objFSO = CreateObject("Scripting.FileSystemObject")
            objNet = CreateObject("Wscript.Network")
            'Vérifie si le lecteur ("H:" par exemple) existe
            If Not objFSO.DriveExists(DriveMap) Then
                'il n'existe pas on le mappe
                objNet.MapNetworkDrive(DriveMap, Path, "true", "user", "password")
                'objNet.MapNetworkDrive(lettre,chemin de type "\\10.0.2.44\Partage",reconnection au démarrage du pc,utilisateur,mot de passe)
                'Il n'est pas obligatoire d'indiquer l'utilisateur et le mot de passe selon les droits du disque à monter
            Else
                'il existe alors on le démappe et on le remappe (si c'est le même lecteur permet de réactiver le disque)
                objNet.RemoveNetworkDrive(DriveMap, True)
                objNet.MapNetworkDrive(DriveMap, Path, "true", "user", "password")
            End If
        Catch err As System.Exception
            'Capture de l'erreur éventuelle
            MsgBox("Map->" + DriveMap + Path + " || " + err.ToString)
        End Try
    End Function

Conclusion :


N'hésitez pas de laisser vos commentaires !
Tout code est perfectible !!!!

A voir également

Ajouter un commentaire

Commentaires

Messages postés
14
Date d'inscription
vendredi 1 mars 2002
Statut
Membre
Dernière intervention
11 septembre 2009

Vraiment impeccable ton code

Sur un dev, j'avais un pb de perte de connexion sur un lecteur mappé.
J'avais gérer le problème en passant par une commande shell. Mais avec le temps la lettre du lecteur a été prise par l'admin réseau. Comme j'ai besoin juste sur un instant t du lecteur, je commence par vérifier quel est la lettre disponible, je la connecte. Une fois l'utilisation du prg terminé je kill le lecteur monté.

Merci.
Messages postés
51
Date d'inscription
lundi 7 juillet 2008
Statut
Membre
Dernière intervention
13 février 2012

Je pense avoir trouvé l'erreur pour l'exception

a la ligne 7 il faut enlever ' devant la ligne
sa marche
enfin apres 3 jour de relecture j'ai fini par comprendre

en tout cas merci
Messages postés
36
Date d'inscription
mardi 26 novembre 2002
Statut
Membre
Dernière intervention
24 juillet 2007

D'accord, je v cherche de mon cote aussi (le pb n'est pas bloquant pour l'instant).

info : je suis en vb2005.
Messages postés
60
Date d'inscription
lundi 8 mars 2004
Statut
Membre
Dernière intervention
16 mai 2007

Dès que je peux retester je test et je te tiens au courant !
Messages postés
36
Date d'inscription
mardi 26 novembre 2002
Statut
Membre
Dernière intervention
24 juillet 2007

j'ai essayer en ajoutant les deux point mais sa ne marche pas .

voici l'erreur

System.NullReferenceException: Variable objet ou variable d'un bloc With non définie.
à Microsoft.VisualBasic.CompilerServices.Symbols.Container..ctor(Object Instance)
à Microsoft.VisualBasic.CompilerServices.NewLateBinding.LateGet(Object Instance, Type Type, String MemberName, Object[] Arguments, String[] ArgumentNames, Type[] TypeArguments, Boolean[] CopyBack)
à GRafale.ModVarGlobale.MapDisk(Object DriveMap, Object Path) dans E:\christian\la redoute\6eme gare\GRafale\GRafale\Modules\ModVarGlobale.vb:ligne 352

merci d'avance.

Ps : j'ai essayer avec une api et cela fonctionne mais je voudrait comprendre pour sa ne marche pas !!

merci d'avance
Afficher les 20 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.