Récupérer le chemin de Program Files... - C++ - Programmation
Marsh Posté le 30-01-2006 à 15:03:11
%programfiles% ?
Marsh Posté le 30-01-2006 à 15:03:31
(après yen a d'autres, à chercher, j'ai le flemme.:o)
Marsh Posté le 30-01-2006 à 15:24:57
nulle part, c'est un alias de windows...
Après faut voir si ça fonctionne dans le contexte de ton programme...
Marsh Posté le 30-01-2006 à 15:37:08
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...
Marsh Posté le 30-01-2006 à 15:39:40
ça doit être rangé quelquepart dans le registre, alors...
Marsh Posté le 30-01-2006 à 16:10:04
haazheel a écrit : Bon, ben je vais chercher alors... |
Salut
c'est quelque chose de ce style :
Code :
|
Marsh Posté le 30-01-2006 à 16:39:32
Trap D a écrit : Salut
|
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\ |
Marsh Posté le 30-01-2006 à 18:34:32
haazheel a écrit :
|
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 )
Marsh Posté le 30-01-2006 à 18:38:36
Ça fonctionne parfaitement avec BCB 3, il faut inclure shlobj.h
Marsh Posté le 30-01-2006 à 21:28:19
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...
Marsh Posté le 31-01-2006 à 10:19:01
La méthode de Trap D est bonne
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.
Marsh Posté le 03-02-2006 à 23:13:01
// 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
Marsh Posté le 15-02-2006 à 00:27:23
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
...
Marsh Posté le 16-02-2006 à 23:58:44
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, ...
Marsh Posté le 17-02-2006 à 00:29:51
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.
Marsh Posté le 17-02-2006 à 00:43:03
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.
Marsh Posté le 30-01-2006 à 14:52:09
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