Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2374 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  Récupérer le chemin de Program Files...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Récupérer le chemin de Program Files...

n°1294811
haazheel
Posté le 30-01-2006 à 14:52:09  profilanswer
 

Bonjour à tous,
 
comment je peux faire pour récupérer les valeurs des dossiers de Windows?
 
Comme Program Files, Program Files\Fichiers Communs, Mes Documents?
 
Merci d'avance

mood
Publicité
Posté le 30-01-2006 à 14:52:09  profilanswer
 

n°1294823
skeye
Posté le 30-01-2006 à 15:03:11  profilanswer
 

%programfiles% ?


---------------
Can't buy what I want because it's free -
n°1294824
skeye
Posté le 30-01-2006 à 15:03:31  profilanswer
 

(après yen a d'autres, à chercher, j'ai le flemme.:o)


---------------
Can't buy what I want because it's free -
n°1294844
haazheel
Posté le 30-01-2006 à 15:23:52  profilanswer
 

Je trouve ça où? Dans quel entête?

n°1294845
skeye
Posté le 30-01-2006 à 15:24:57  profilanswer
 

nulle part, c'est un alias de windows...[:petrus75]
Après faut voir si ça fonctionne dans le contexte de ton programme...


---------------
Can't buy what I want because it's free -
n°1294861
haazheel
Posté le 30-01-2006 à 15:37:08  profilanswer
 

Ben voilà, c'est le souci, ça ne fonctionne pas... :)
 
Je voudrais vérifier qu'un fichier existe dans un des répertoires de Windows...

n°1294865
skeye
Posté le 30-01-2006 à 15:39:40  profilanswer
 

ça doit être rangé quelquepart dans le registre, alors...[:jagstang]


---------------
Can't buy what I want because it's free -
n°1294873
haazheel
Posté le 30-01-2006 à 15:50:03  profilanswer
 

Bon, ben je vais chercher alors...

n°1294890
Trap D
Posté le 30-01-2006 à 16:10:04  profilanswer
 

haazheel a écrit :

Bon, ben je vais chercher alors...


Salut
c'est quelque chose de ce style :

Code :
  1. char Path[MAX_PATH];
  2.    ITEMIDLIST *pt ;
  3.    SHGetMalloc((LPMALLOC *)&pt);
  4.    if (SUCCEEDED(SHGetSpecialFolderLocation(Handle, CSIDL_PROGRAMS , &pt)))
  5.    {
  6.         if (SUCCEEDED(SHGetPathFromIDList(pt, Path)))

n°1294927
haazheel
Posté le 30-01-2006 à 16:39:32  profilanswer
 

Trap D a écrit :

Salut
c'est quelque chose de ce style :

Code :
  1. char Path[MAX_PATH];
  2.    ITEMIDLIST *pt ;
  3.    SHGetMalloc((LPMALLOC *)&pt);
  4.    if (SUCCEEDED(SHGetSpecialFolderLocation(Handle, CSIDL_PROGRAMS , &pt)))
  5.    {
  6.         if (SUCCEEDED(SHGetPathFromIDList(pt, Path)))



 
Merci pour le code, mais j'ai des soucis de compilation avec BCB6...
 
Par contre, j'ai trouvé ce que je cherchais dans le registre:
 

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\

mood
Publicité
Posté le 30-01-2006 à 16:39:32  profilanswer
 

n°1295094
breizhbugs
Posté le 30-01-2006 à 18:34:32  profilanswer
 

haazheel a écrit :


Par contre, j'ai trouvé ce que je cherchais dans le registre:

HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\



Cherche plutot dans HKEY_CURRENT_USER... si tu tiens vraiment a passer par le registre
Mais la methode de "trap D" me semble plus indiquée
( http://msdn.microsoft.com/library/ [...] cation.asp )

n°1295097
Trap D
Posté le 30-01-2006 à 18:38:36  profilanswer
 

Ça fonctionne parfaitement avec BCB 3, il faut inclure shlobj.h

n°1295159
haazheel
Posté le 30-01-2006 à 21:28:19  profilanswer
 

C'est ce que j'ai fait, mais il m'indique des erreurs dans ce fichier...
 
Et j'ai une erreur à l'exécution, mais je ne sais pas d'où elle provient...

n°1295320
Trap D
Posté le 31-01-2006 à 10:07:09  profilanswer
 

Quelles erreurs ??

n°1295323
godbout
Génial.
Posté le 31-01-2006 à 10:19:01  profilanswer
 

La méthode de Trap D est bonne :o
Le problème suivant doit être lié à Builder, sûrement parce que tu n'as pas rajouté les dossiers à inclure dans ton projet pour les .h et les .lib.

n°1298921
videaste95
je ne sais rien !
Posté le 03-02-2006 à 23:13:01  profilanswer
 

// Avec include shlobj.h pour éviter des déclarations multiples, il faut ajouter
//  NO_WIN32_LEAN_AND_MEAN dans  Projet\Options\Répertoires/Conditions\définitions
// ex: _DEBUG;NO_WIN32_LEAN_AND_MEAN
// ou ajouter:
// #define NO_WIN32_LEAN_AND_MEAN


---------------
Je Cherche!
n°1300717
haazheel
Posté le 07-02-2006 à 19:16:27  profilanswer
 

AH bien vu, c'est ce qui me manquait :)

n°1305711
bigears
Posté le 15-02-2006 à 00:27:23  profilanswer
 

heu?? spa une variable d'environnement??
 
int main (int argc, char ** argv, char ** arge)
{
}
en affichant arge g ca :
...
PROCESSOR_IDENTIFIER=x86 Family 6 Model 7 Stepping 3, GenuineIntel
PROCESSOR_LEVEL=6
PROCESSOR_REVISION=0703
ProgramFiles=C:\Program Files
PROMPT=$P$G
SESSIONNAME=Console
SystemDrive=C:
SystemRoot=C:\WINDOWS
TEMP=C:\DOCUME~1\JRME~1\LOCALS~1\Temp
...

n°1307559
videaste95
je ne sais rien !
Posté le 16-02-2006 à 23:58:44  profilanswer
 

Non c'est une définition spécifique à C++Builder qui permet des sélections différentes des inclusions d'entêtes de la VCL ou CLX. Infos trouvées dans différentes entêtes comme shlobj.hpp, urlmon, ...

n°1307568
bigears
Posté le 17-02-2006 à 00:29:51  profilanswer
 

nan on ne s'est pas compri. Je disai juste que les variables des chemins (programmes files / communs / mes docs ) sont des variables d'environnement et elles doivent initialisées par les valeurs contenues de le registre (j'imagine).
 
C'est donc plus facile de faire de lire arge que de passer par le registre.

n°1307570
videaste95
je ne sais rien !
Posté le 17-02-2006 à 00:43:03  profilanswer
 

     En effet je n'avais pas compris. Pourquoi utiliser «SHGetSpecialFolderLocation» plutôt que les variables d'environnement permet d'espérer que si il y a des modifications dans la façon de gérer les dossiers utilisés par windows, elles seront seront prises en compte par la nouvelle version de cette fonction de l'API.

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  Récupérer le chemin de Program Files...

 

Sujets relatifs
recuperer les dimensions d'un swfComment faire pour récupérer des librairies sous linux-gcc
recuperer la valeur d'une variable javascript ??comment récupérer un fichier son???
récupérer un date via formulaire et l'insérer ds champ date [RESOLU][Résolu]Récupérer la valeur d'un radiobutton
Récupérer des imbrications multiples dans une table MySQLProblème pour récupérer donnée en php
Recuperer valeur d'une liste deroulante en javascriptlier une image .gif...déterminer chemin/userform..svp.
Plus de sujets relatifs à : Récupérer le chemin de Program Files...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR