Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Général VBA > Contribuez
Contribuez Proposez vos articles, cours, tutoriels, faq, codes sources, astuces pour VBA
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 01/11/2006, 12h10   #1
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 776
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 776
Points : 16 857
Points : 16 857
Envoyer un message via Skype™ à bbil
Par défaut [FAQ VB/VBA] Récupérer le chemin d'accés du répertoire Mes documents

Suite à la discussion : [VB6] Syntaxe répertoire de sauvegarde ,
et aprés adaptation de la faq : Comment accéder à la base de registre ?

cela donne :

Q : Comment Récupérer le chemin d'accés du répertoire Mes documents
R : Par la lecture de la clef : "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal" dans la base de registre :

Code :
1
2
3
4
5
6
7
8
9
 
Sub LectureRegistre()
  Dim Ma_Clef As String 'Chemin de ma clef dans le registre
  Dim WshShell As Object
  Ma_Clef = "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders\Personal"
  Set WshShell = CreateObject("WScript.Shell")
  MsgBox WshShell.RegRead(Ma_Clef)
  Set WshShell = Nothing
End Sub
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 01/11/2006, 18h44   #2
Responsable Visual Basic
 
Avatar de bbil
 
Inscription : juin 2003
Messages : 11 776
Détails du profil
Informations personnelles :
Âge : 45
Localisation : France, Ariège (Midi Pyrénées)

Informations forums :
Inscription : juin 2003
Messages : 11 776
Points : 16 857
Points : 16 857
Envoyer un message via Skype™ à bbil
Citation:
Envoyé par wape
Bonjour,

Une variante du code de bbil, sans lecture de la base de registre :

Code :
1
2
3
4
5
6
Dim stRep As String
Dim WshShell As Object
Set WshShell = CreateObject("WScript.Shell")
stRep = WshShell.SpecialFolders("MyDocuments")
Set WshShell = Nothing
Set MyDb = MyWs.CreateDatabase(stRep & "\" & dbname & ".mdb", dbLangGeneral, dbVersion30)
wape
bbil est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/07/2007, 11h03   #3
Invité régulier
 
Inscription : avril 2006
Messages : 8
Détails du profil
Informations personnelles :
Âge : 27

Informations forums :
Inscription : avril 2006
Messages : 8
Points : 6
Points : 6
Par défaut Le sujet est un peu vieux mais ça peu toujours aider !!!

Salut à tous,

Il est possible de connaitre le chemin d'accés en utilsant la ligne de commande suivante :

cd "%USERPROFILE%\Mes Documents" (par exemple pour le Dossier Mes Documents).

Prenez le temps de tester dans une boite de commande et vous verrez que ça vous ressortira l'adresse de l'utilisateur courant, sous Linux/Mac il s'agit de la ligne de commande cd "home" ou "~" si mes souvenirs sont bons mais je ne suis pas sur de cela. Par contre %USERPROFILE% fonctionne sous XP avec certitude mais je n'ai pas tester sous 2000.

Voià je ne sais pas si cela aura un intérêt pour certains, à vrai dire moi ça m'a permis d'avancer sur ma conception de Gadgets/Widgets sous Yahoo! Widget Engine qui répertorie les widgets dans le dossier "Mes Documents\My Widget" de l'utilisateur courant.

Passez une bonne journée à tous et en espérant que ça pourra aider.

Cordialement,

GK.
LarabNain est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2010, 14h32   #4
Invité de passage
 
Philippe
Inscription : février 2010
Messages : 1
Détails du profil
Informations personnelles :
Nom : Philippe

Informations forums :
Inscription : février 2010
Messages : 1
Points : 1
Points : 1
Boujour,

mouai... l'ami LarabNain il reste que si ton script doit etre utilisé sous differente langue d'OS cela ne fonctionnera pas !

Donc les methodes suggérées par bbil restent les plus certainnes.

Toutefois si tu ne peux faire autrement que d'utiliser les cmds MsDos il est possible de passer par la base de registre:

Code :
1
2
3
4
5
6
7
@echo off
 
for /f "tokens=2 delims=\" %%i in ('reg query "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" /v Personal') do set MyDocFolder=%%i
 
set MyDocPath=%USERPROFILE%\%MyDocFolder%\
echo %MyDocPath%
Pause
Une petite explication :

reg query => permet de récupérer la valeur d'une ou plusieurs clés/sous clés de registre.

Ici le for permet 3 choses:

-récupérer la valeur renvoyée par la cmd reg query. Notez que reg query est reconnue par le for comme une cmd grace aux simples quotes.

-ne prendre de cette valeur, que ce qui nous interesses.

-mettre le tout dans une variable.

Si vous voulez des précisions sur le fonctionnement de cette methode n'hésitez pas!

A+
Phil Free est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 22h59.


 
 
 
 
Partenaires

Hébergement Web