Page 1 sur 1
[RESOLU] Chemin du répertoire de téléchargement utilisateur
Publié : jeu. 17/janv./2013 15:59
par falsam
Bonjour. GetTemporaryDirectory() permet de connaitre le chemin du répertoire temporaire d'un utilisateur mais j'aurais voulu connaitre le chemin du répertoire de téléchargement défini par un utilisateur.
Quelqu'un aurait il une réponse à me proposer ? Merci.
Re: Chemin du répertoire de téléchargement défini par un uti
Publié : jeu. 17/janv./2013 18:27
par Ar-S
En passant par la base de registre.
Code : Tout sélectionner
key.s = "HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer"
Value.s = "Download Directory"
la procédure de lecture du registre a été copiée, bidouillée, modifiée tellement de fois que je ne sais plus d’où celle ci sort (dobro, droopy ou une adaptation perso...)
Ce qui donne :
Code : Tout sélectionner
Procedure.s ReadRegKey(OpenKey.l,SubKey.s,ValueName.s) ; ====================================== ReadRegKey
hKey.l=0
KeyValue.s= Space (255)
DataSize.l=255
If RegOpenKeyEx_ (OpenKey,SubKey,0, #KEY_READ ,@hKey)
KeyValue= ""
Else
If RegQueryValueEx_ (hKey,ValueName,0,0,@KeyValue,@DataSize)
KeyValue= ""
Else
KeyValue= Left (KeyValue,DataSize-1)
EndIf
RegCloseKey_ (hKey)
EndIf
ProcedureReturn KeyValue
EndProcedure
MessageRequester("TELECH",ReadRegKey(#HKEY_CURRENT_USER,"Software\Microsoft\Internet Explorer","Download Directory"))
Re: Chemin du répertoire de téléchargement défini par un uti
Publié : ven. 18/janv./2013 13:49
par GallyHC
Bonjour,
Il faudrais deja savoir si vous cherche le repertoire de telechargement des fichiers perso (dans mes docs avec par exemple MSN) ou celui d'IE.
dans tout les cas ce code peut vous aidez :
Code : Tout sélectionner
Procedure.s GetSystemFolder(lvalue.l)
;
Protected sfolder.s
Protected *itemid.ITEMIDLIST = #Null
If SHGetSpecialFolderLocation_(0, lvalue, @*itemid) = #NOERROR
sfolder = Space(#MAX_PATH)
If SHGetPathFromIDList_ (*itemid, @sfolder)
If Right(sfolder, 1) <> "\"
sfolder + "\"
EndIf
ProcedureReturn sfolder
EndIf
EndIf
EndProcedure
For i=0 To 63
Debug Str(i) + " - " + GetSystemFolder(i)
Next i
Après pour touver la constante (plus precise) qu'il vous faut, voir cette page "
http://msdn.microsoft.com/en-us/library/aa453706.aspx"
Pour celui dans "mes docs", je n'ai rien trouvais. La seul solution que je vois actuellement, serais une recherche du répertoire perso et une analyse de l'existance de certain repertoire de chaque OS (WinXP, 7, ...). Car le nom que changer.
Deja dans 7 il y a au moin le fichier "Downloads" dans le profils et aussi "Mes fichiers reçus" dans le "profil + Documents", sans parle des fichier de IE.
Cordialement,
GallyHC
Re: Chemin du répertoire de téléchargement défini par un uti
Publié : ven. 18/janv./2013 14:49
par Ar-S
Si tu parles de "chemin de téléchargement défini par l'utilisateur", il est clair qu'il faut savoir définit depuis quel logiciel.
Si tu changes le chemins de ton dossier téléchargement via la bonne méthode, à savoir
Clique droit sur le dossier téléchargement puis
onglet Emplacement et en indiquant un emplacement spécifique.
Ce nouvel emplacement sera, sous windows 8 x64, à la clé
Code : Tout sélectionner
;clé : HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
;valeur : {374DE290-123F-4565-9164-39C4925E467B}
;ce qui donne (testé et fonctionnel)
Procedure.s ReadRegKey(OpenKey.l,SubKey.s,ValueName.s) ; ====================================== ReadRegKey
hKey.l=0
KeyValue.s= Space (255)
DataSize.l=255
If RegOpenKeyEx_ (OpenKey,SubKey,0, #KEY_READ ,@hKey)
KeyValue= ""
Else
If RegQueryValueEx_ (hKey,ValueName,0,0,@KeyValue,@DataSize)
KeyValue= ""
Else
KeyValue= Left (KeyValue,DataSize-1)
EndIf
RegCloseKey_ (hKey)
EndIf
ProcedureReturn KeyValue
EndProcedure
MessageRequester("TELECH",ReadRegKey(#HKEY_CURRENT_USER,"Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders","{374DE290-123F-4565-9164-39C4925E467B}"))
Re: Chemin du répertoire de téléchargement défini par un uti
Publié : ven. 18/janv./2013 15:12
par GallyHC
Bonjour Ar-s
Désolé de te dire que j'ai testé tes codes sur 7 et xp et perso je n'ai a chaque fois rien

. Les clefs sont peu être spécifique a chaque OS (c'est une question car je n'ai pas la réponse)?
Cordialement,
GallyHC
PS: J'espère être dans le bon sens des questions, ni hors sujet (je me méfis maintenant) et surtout dans le BON TOPIC…
Re: Chemin du répertoire de téléchargement défini par un uti
Publié : ven. 18/janv./2013 15:32
par Ar-S
GallyHC a écrit :Bonjour Ar-s
Désolé de te dire que j'ai testé tes codes sur 7 et xp et perso je n'ai a chaque fois rien

. Les clefs sont peu être spécifique a chaque OS (c'est une question car je n'ai pas la réponse)?
Cordialement,
GallyHC
PS: J'espère être dans le bon sens des questions, ni hors sujet (je me méfis maintenant) et surtout dans le BON TOPIC…
Regarde dans regedit à la clé (qui elle es tcommunes à tous les OS je pense)
Code : Tout sélectionner
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
si tu vois une le chemin du répertoire téléchargement dans les "valeurs" (à droite).
Re: Chemin du répertoire de téléchargement défini par un uti
Publié : ven. 18/janv./2013 16:20
par GallyHC
Bonjour,
Ben en fait non pour être plus précis je te met la liste des clefs que j'ai :
Code : Tout sélectionner
"AppData"="C:\\Documents and Settings\\MOI EN FAIT\\Application Data"
"Cookies"="C:\\Documents and Settings\\MOI EN FAIT\\Cookies"
"Desktop"="C:\\Documents and Settings\\MOI EN FAIT\\Bureau"
"Favorites"="C:\\Documents and Settings\\MOI EN FAIT\\Favoris"
"NetHood"="C:\\Documents and Settings\\MOI EN FAIT\\Voisinage réseau"
"Personal"="C:\\Documents and Settings\\MOI EN FAIT\\Mes documents"
"PrintHood"="C:\\Documents and Settings\\MOI EN FAIT\\Voisinage d'impression"
"Recent"="C:\\Documents and Settings\\MOI EN FAIT\\Recent"
"SendTo"="C:\\Documents and Settings\\MOI EN FAIT\\SendTo"
"Start Menu"="C:\\Documents and Settings\\MOI EN FAIT\\Menu Démarrer"
"Templates"="C:\\Documents and Settings\\MOI EN FAIT\\Modèles"
"Programs"="C:\\Documents and Settings\\MOI EN FAIT\\Menu Démarrer\\Programmes"
"Startup"="C:\\Documents and Settings\\MOI EN FAIT\\Menu Démarrer\\Programmes\\Démarrage"
"Local Settings"="C:\\Documents and Settings\\MOI EN FAIT\\Local Settings"
"Local AppData"="C:\\Documents and Settings\\MOI EN FAIT\\Local Settings\\Application Data"
"Cache"="C:\\Documents and Settings\\MOI EN FAIT\\Local Settings\\Temporary Internet Files"
"History"="C:\\Documents and Settings\\MOI EN FAIT\\Local Settings\\Historique"
"My Pictures"="C:\\Documents and Settings\\MOI EN FAIT\\Mes documents\\Mes images"
"Fonts"="C:\\WINDOWS\\Fonts"
"My Music"="C:\\Documents and Settings\\MOI EN FAIT\\Mes documents\\Ma musique"
"My Video"="C:\\Documents and Settings\\MOI EN FAIT\\Mes documents\\Mes vidéos"
"Administrative Tools"=""
je ne comprend pas non plus pourquoi je n'ai pas de clef comme tu l'as?
Cordialement,
GallyHC
Re: Chemin du répertoire de téléchargement défini par un uti
Publié : ven. 18/janv./2013 17:37
par Ar-S
Sous w7 ET Xp ???
Re: Chemin du répertoire de téléchargement défini par un uti
Publié : ven. 18/janv./2013 17:38
par GallyHC
La c sous XP
Re: Chemin du répertoire de téléchargement défini par un uti
Publié : ven. 18/janv./2013 17:42
par Ar-S
GallyHC a écrit :La c sous XP
Plus de chance qu'il y ait quelque chose sous 7
je n'ai plus WindowsXP mode sur windows 8, faut que je le réinstalle.
Re: Chemin du répertoire de téléchargement défini par un uti
Publié : ven. 18/janv./2013 23:18
par falsam
Merci pour ces réponses.
@AR-s : Ton code ci-dessous fonctionne sous windows 7 et répond à ma demande.
Code : Tout sélectionner
;clé : HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders
;valeur : {374DE290-123F-4565-9164-39C4925E467B}
;ce qui donne (testé et fonctionnel)
Procedure.s ReadRegKey(OpenKey.l,SubKey.s,ValueName.s) ; ====================================== ReadRegKey
hKey.l=0
KeyValue.s= Space (255)
DataSize.l=255
If RegOpenKeyEx_ (OpenKey,SubKey,0, #KEY_READ ,@hKey)
KeyValue= ""
Else
If RegQueryValueEx_ (hKey,ValueName,0,0,@KeyValue,@DataSize)
KeyValue= ""
Else
KeyValue= Left (KeyValue,DataSize-1)
EndIf
RegCloseKey_ (hKey)
EndIf
ProcedureReturn KeyValue
EndProcedure
MessageRequester("TELECH",ReadRegKey(#HKEY_CURRENT_USER,"Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders","{374DE290-123F-4565-9164-39C4925E467B}"))
@GallyHC : Merci pour ta réponse que je garde précieusement et tu es bien dans un topic consacré à des demandes d'aide. (Quel rancunier tu fais :p Mais c'est aussi pour ça que j'aime ce forum

Merci.
Je vais afficher Résolu mais la discussion continue.
Re: [RESOLU] Chemin du répertoire de téléchargement utilisat
Publié : dim. 20/janv./2013 12:58
par GallyHC
@falsam > En fait ce n'est pas vraiment de rancune

allez on fait comme si ce n'etes pas arrivé.
@Ar-s > ton code fonctionne sur 7.
Cordialement,
GallyHC