Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

MAPPER UN DISQUE RÉSEAU


Information sur la source

Catégorie :Fichier / Disque Source .NET ( DotNet ) Classé sous : mapper, disque, réseau, monter, connecter Niveau : Débutant Date de création : 07/12/2006 Vu : 14 064

Note :
10 / 10 - par 1 personne
10,00 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (18)
Ajouter un commentaire et/ou une note

Description

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

  • 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
    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 !!!!
 

Commentaires et avis

signaler à un administrateur
Commentaire de Willi le 07/12/2006 15:11:00 administrateur CS

Par API c'est pas mal aussi... plus précisement avec WNetAddConnection2
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wnet/wnet/wnetaddconnection2.asp

++

signaler à un administrateur
Commentaire de scoubigee le 07/12/2006 16:02:16

Ah vi je m'y pencherai dessus à l'occase tiens !

Merci pr le lien !

signaler à un administrateur
Commentaire de hvb le 07/12/2006 17:57:55

Willi : en .net, autant utiliser les fonctions prevues a cette effet dans le framework, comme il l'a fait... nan?

signaler à un administrateur
Commentaire de Willi le 07/12/2006 21:14:21 administrateur CS

Euh... ce code n'exploite pas du tout le framework... ? Quelles sont ces fonctions dont tu parles HVB ?

signaler à un administrateur
Commentaire de hvb le 07/12/2006 23:35:40

17h57, 3mn avant la fin du taf... j'avoue avoir seulement survolé la source et n'ai pas vu (regardé même :/) le type de l'objet... ^^'
a quand une fonction supprimer ses propres commentaires...!

signaler à un administrateur
Commentaire de Patrice99 le 08/12/2006 13:21:34

> 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"

Ce n'est pas normal. Si tu coches "Se reconnecter à l'ouverture de session", une lettre de lecteur réseau persiste sans aucun problème pendant plusieurs années (même si la connexion est parfois inaccessible). Si tu perds cette lettre de lecteur au redémarrage de Windows en ayant coché la case, alors cela indique peut être un problème grave : par exemple, des fichiers systèmes sont corrompus au démarrage, et Windows reprend la dernière bonne config connue, pour laquelle la lettre de lecteur réseau n'était pas encore programmée.

signaler à un administrateur
Commentaire de scoubigee le 08/12/2006 18:50:22

En fait quand je disais qu'ils "sautaient" c'est qu'ils apparaissaient sous le statut "disque réseau déconnecté", et quand mon programme accédait aux fichiers sur ce disque il me remontait une erreur, je ne sais plus exactement laquelle mais en sortie le traitement ne s'effectuait pas.
D'où la nécessité de "mapper les disques par programme" plutôt que "manuellement" !!!

Voili voilou ^_^

signaler à un administrateur
Commentaire de mastercatz le 11/12/2006 08:01:29

Connaissez vous la commande 'net use' ?

signaler à un administrateur
Commentaire de scoubigee le 11/12/2006 08:58:33

Et oui, une petite recherche sur le site permet de trouver ceci :
http://www.vbfrance.com/codes/MAPPER-LECTEUR-RESEAU-CONNEXION-DECONNEXION_3165.aspx


^_^

signaler à un administrateur
Commentaire de Sade le 12/02/2007 13:29:21

Y a t'il un reference a ajouter, car si j'execute le code directement
il y a un execption de generer.

merci d'avance

signaler à un administrateur
Commentaire de scoubigee le 12/02/2007 13:42:32

Non pas que je me rapelle (de tête ^^).
Quelle est ton exception ?

signaler à un administrateur
Commentaire de Sade le 12/02/2007 13:47:21

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

signaler à un administrateur
Commentaire de scoubigee le 12/02/2007 14:39:26

Quelle est ta ligne 352 ?

signaler à un administrateur
Commentaire de Sade le 12/02/2007 14:43:28

La ligne 352 est la suivante .

If Not objFSO.DriveExists(DriveMap) Then

signaler à un administrateur
Commentaire de scoubigee le 12/02/2007 14:59:28

Ah ok ^^
Dans ce cas là c'est que tu n'as pas passé le bon paramètre ^^
Drivemap = "D:"
(je crois que c ca, il faut juste mettre les : en plus à la lettre, teste et dis moi)

signaler à un administrateur
Commentaire de Sade le 12/02/2007 15:11:32

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

signaler à un administrateur
Commentaire de scoubigee le 12/02/2007 15:18:48

Dès que je peux retester je test et je te tiens au courant !

signaler à un administrateur
Commentaire de Sade le 12/02/2007 15:33:06

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

info : je suis en vb2005.

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Mapper un disque réseau via Internet [ par metos ] Bonjour !Je suis entrain de développer un petit soft avec des contrôles Winsock pour envoyer des commandes à un serveur via le net. Je me demandais s' Mapper un disque réseau via Internet [ par metos ] Bonjour !Je suis entrain de développer un petit soft avec des contrôles Winsock pour envoyer des commandes à un serveur via le net. Je me demandais s' Mapper un disque réseau via Internet [ par metos ] Bonjour !Je suis entrain de développer un petit soft avec des contrôles Winsock pour envoyer des commandes à un serveur via le net. Je me demandais s' Mapper un disque réseau via Internet [ par metos ] Bonjour !Je suis entrain de développer un petit soft avec des contrôles Winsock pour envoyer des commandes à un serveur via le net. Je me demandais s' connecter un lecteur réseau [ par gaby33 ] Je réalise un programme qui récupère des données sur une bande DAT, et les place sur un des disques de mon snap server ( c'est un serveur de stockage Connecter une BD en réseau [ par rumours ] Aprés un "Net use K: \\youpi\tralala" je dispose d'unlecteur K sur lequel figure un fichier FoxproToto.dbf.Comment à partir d'un controle DAO (ou ADO Base réseau [ par willfred ] je possède l'ip de l'ordinateur ou je doit me connecter mais je ne sais pas comment faire pour me connecter sur la base de données de cet ordi.merci d Connecter un lecteur réseau [ par bouf ] Bonjour,j'essai depuis quelques temps en vain de faire une connection réseau en VB du type : net use [lettre du lecteur] \\serveur\dossierJe n'ai rien Winsock sur internet [ par Mrx3 ] Voilà je voudrai savoir si il est possible de connecter 2 PC avec winsock , sachant que ces pc son sur internet. J'ai essayé mais sa ne veut pas se co Winsock sur internet [ par Mrx3 ] Voilà je voudrai savoir si il est possible de connecter 2 PC avec winsock , sachant que ces pc son sur internet. J'ai essayé mais sa ne veut pas se co


Nos sponsors

Sondage...

CalendriCode

Janvier 2009
LMMJVSD
   1234
567891011
12131415161718
19202122232425
262728293031 

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,499 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.