Précédent   Forum du club des développeurs et IT Pro > Environnements de développement > WinDev > Contribuez
Contribuez Vos contributions pour la rubrique Windev : articles, cours, tutoriels, faq, comparatifs, tests, sources, ...
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 23/09/2010, 10h40   #1
Louis Griffont
Inactif
 
Inscription : février 2003
Messages : 4 342
Détails du profil
Informations forums :
Inscription : février 2003
Messages : 4 342
Points : 4 044
Points : 4 044
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 :
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
Louis Griffont est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 05/11/2010, 11h10   #2
bastiencb
Membre régulier
 
Inscription : août 2005
Messages : 56
Détails du profil
Informations forums :
Inscription : août 2005
Messages : 56
Points : 70
Points : 70
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 :
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 :
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 !
bastiencb est déconnecté   Envoyer un message privé Réponse avec citation 40
Vieux 05/11/2010, 12h51   #3
Louis Griffont
Inactif
 
Inscription : février 2003
Messages : 4 342
Détails du profil
Informations forums :
Inscription : février 2003
Messages : 4 342
Points : 4 044
Points : 4 044
Ça arrive trop tard, mais merci quand même !
Louis Griffont est déconnecté   Envoyer un message privé Réponse avec citation 11
Vieux 05/11/2010, 15h25   #4
mail.spam
Modérateur
 
Avatar de mail.spam
 
Homme Sylvain
Développeur Windev et technicien maintenance
Inscription : janvier 2008
Messages : 1 641
Détails du profil
Informations personnelles :
Nom : Homme Sylvain
Âge : 34
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 641
Points : 3 823
Points : 3 823
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
mail.spam est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 10/11/2010, 14h30   #5
Louis Griffont
Inactif
 
Inscription : février 2003
Messages : 4 342
Détails du profil
Informations forums :
Inscription : février 2003
Messages : 4 342
Points : 4 044
Points : 4 044
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é !
Louis Griffont est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 17h11.


 
 
 
 
Partenaires

Hébergement Web