IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Contribuez Discussion :

Lettre de chemin vers UNC


Sujet :

Contribuez

  1. #1
    Inactif  
    Profil pro
    Inscrit en
    Février 2003
    Messages
    4 341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 4 341
    Points : 5 953
    Points
    5 953
    Par défaut Lettre de chemin vers UNC
    Je poste ici, le source résultant d'une discussion sur le forum. Des fois que ça serve.

    Le but est de transformer un chemin du style "X:\chemin\" avec X correspondant à une redirection de connexion réseau, par \\serveur\dossierpartage\chemin\.

    La fonction utilise une dll windows mpr.dll et la fonction WNetGetConnexionA

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    Procédure FLecteur( cp_Chemin)
    local
    	cl_Retour	est une chaine
    	zl_Lecteur	est une chaine asciiz sur 3
    	zl_Chemin	est une chaine Asciiz sur 255 = complete( " ", 255)
    	nl_Taille	est un entier = taille( zl_Chemin)
     
    si cp_Chemin[[ à 2]] <> "\\" alors
    	zl_Lecteur = cp_Chemin[[ à 2]]
    	si AppelDLL32("mpr.dll","WNetGetConnectionA" , &zl_Lecteur,  &Zl_Chemin, &nl_Taille) <> 0 alors
                si sansespace( zl_Chemin) <> "" alors
    		cl_Retour = zl_Chemin+cp_Chemin[[ 3 a]]
                sinon
                    cl_Retour = cp_Chemin
                fin
    	sinon
    		cl_Retour = cp_Chemin
    	FIn
    sinon
    	cl_Retour = cp_Chemin
    FIN
    renvoyer cl_Retour

  2. #2
    Membre actif
    Inscrit en
    Août 2005
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 96
    Points : 205
    Points
    205
    Par défaut Chemin UNC d'un lecteur mappé sur un répertoire réseau ou inversement, chemin local à partir d'un chemin UNC.
    Plus simplement, pour obtenir le chemin UNC d'un lecteur mappé sur un répertoire réseau, on peut utiliser :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    PROCEDURE CheminLocal_Vers_UNC(_sCheminLocal est une chaîne)
     
    LOCAL
    	sRepLocal est une chaîne
    	sDisque est une chaîne
     
    sDisque = fExtraitChemin(_sCheminLocal,fDisque)
    sRepLocal = fExtraitChemin(_sCheminLocal,fRépertoire+fFichier)
     
    SI RéseauNomRep(sDisque) <> "" ALORS
    	sDisque = RéseauNomRep(sDisque)
    FIN
     
    RENVOYER sDisque+sRepLocal
    Et pour l'opération inverse, obtenir le chemin local à partir d'un chemin UNC :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    PROCEDURE UNC_Vers_CheminLocal(_sCheminUNC est une chaîne)
     
    LOCAL
    	sLecteurUNC est une chaîne
    	sRepUNC est une chaîne
    	sDisque est une chaîne
     
    sLecteurUNC = fExtraitChemin(_sCheminUNC,fDisque)
    sRepUNC = fExtraitChemin(_sCheminUNC,fRépertoire+fFichier)
     
    POUR iLecteur = Asc("A") _A_ Asc("Z")	
    	sDisque = Caract(iLecteur)
    	SI fDisquePrêt(sDisque) ALORS
    		SI Minuscule(RéseauNomRep(sDisque+":")) = Minuscule(sLecteurUNC) ALORS
    			RENVOYER sDisque+":"+sRepUNC	
    		FIN
    	FIN
    FIN
     
    RENVOYER ""
    Bonne prog !

  3. #3
    Inactif  
    Profil pro
    Inscrit en
    Février 2003
    Messages
    4 341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 4 341
    Points : 5 953
    Points
    5 953
    Par défaut
    Ça arrive trop tard, mais merci quand même !

  4. #4
    Membre expert
    Avatar de mail.spam
    Homme Profil pro
    Développeur Windev et technicien maintenance
    Inscrit en
    Janvier 2008
    Messages
    1 914
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Windev et technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2008
    Messages : 1 914
    Points : 3 803
    Points
    3 803
    Par défaut
    Il faut rappeler que la fonction RéseauNomRep est présente à partir de Windev 9.
    Le code de Louis fonctionne pour la version 5.5.
    la touche est ton amie. l'aide ne mord pas quand on la consulte...
    PS : n'oubliez jamais que nous ne sommes pas avec vous sur le projet. Donc plus vous donnez d'informations et d'exemples de codes et plus nous pourrons vous aider. (Un exemple vaut mieux que de longs discours...)

    Pensez à utiliser les votes et à cliquer sur , merci

  5. #5
    Inactif  
    Profil pro
    Inscrit en
    Février 2003
    Messages
    4 341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 4 341
    Points : 5 953
    Points
    5 953
    Par défaut
    Désolé de te contredire mail.spam mais la fonction ReseauNomRep existe en Windev 5.5 et c'est moi qui n'ai pas suffisamment cherché !

  6. #6
    Membre actif
    Inscrit en
    Août 2005
    Messages
    96
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 96
    Points : 205
    Points
    205
    Par défaut ReseauNomRep ne fonctionne pas / Lister les lecteurs réseau.
    Sur certains postes, j'ai constaté que la fonction ReseauNomRep ne fonctionne pas. (http://doc.pcsoft.fr/fr-FR/?3066005&name=ReseauNomRep)

    Je conseillerai donc au final d'utiliser la procédure décrite par Louis griffont pour récupérer le chemin UNC d'un lecteur réseau qui elle fonctionne dans tout les cas.

    Pour ma part, j'ai donc surchargé la fonction ReseauNomRep :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
    PROCEDURE ReseauNomRep(_sDisque est une chaîne)
     
    LOCAL
    	sDisque		est une chaîne ASCIIZ sur 3
    	sCheminUNC	est une chaîne ASCIIZ sur 255 = Complète(" ",255)
    	iTaille	est un entier 
     
    sDisque = _sDisque
    iTaille = Taille(sCheminUNC)
     
    AppelDLL32("mpr.dll","WNetGetConnectionA",&sDisque,&sCheminUNC,&iTaille)
    sCheminUNC = SansEspace(sCheminUNC)
    SI sCheminUNC = "" ALORS
    	sCheminUNC = WL.RéseauNomRep(_sDisque)
    FIN
     
    RENVOYER sCheminUNC
    Exemple de fonction permettant de lister les lecteurs réseau et de récupérer leur chemin UNC (En utilisant la procédure surchargée ci-dessus) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    LOCAL
    	iLecteur est un entier
    	sReseauNomRep est une chaîne
     
    POUR iLecteur = Asc("A") _A_ Asc("Z")
    	sReseauNomRep = ReseauNomRep(Caract(iLecteur)+":")
    	SI sReseauNomRep <> ""
    		Trace("Répertoire réseau détecté : "+sReseauNomRep)
    	FIN
    FIN
    Bonne prog

Discussions similaires

  1. Chemin vers clef USB autrement que par lettre de lecteur (Id ?)
    Par zax-tfh dans le forum Windows Forms
    Réponses: 2
    Dernier message: 10/03/2009, 16h16
  2. Comment extraire chemin complet (UNC) d'un dossier ?
    Par kikica dans le forum API, COM et SDKs
    Réponses: 7
    Dernier message: 27/10/2005, 18h25
  3. Tester le formalisme du chemin vers un fichier ?
    Par elitost dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 07/10/2005, 16h06
  4. chemin vers le répertoire Data
    Par funkadelic dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 02/08/2005, 16h19
  5. chemin vers Mes Documents
    Par andolini dans le forum C++Builder
    Réponses: 4
    Dernier message: 16/06/2005, 20h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo