Openfilename

Résolu
inflamers Messages postés 17 Date d'inscription lundi 20 mars 2006 Statut Membre Dernière intervention 14 mai 2007 - 13 mars 2007 à 18:19
inflamers Messages postés 17 Date d'inscription lundi 20 mars 2006 Statut Membre Dernière intervention 14 mai 2007 - 15 mars 2007 à 12:45
Salut à tous
Savez-vous comment mettre "Mes Documents" en dossier initial, avec lpstrInitialDir, sachant que ça marche la première fois mais ensuite, les fois suivantes, ca m'emmene dans le dernier repertoire consulté ? Je sais pas trop d'où ca vient....
Merci d'avance
inflamers.

4 réponses

racpp Messages postés 1910 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 15
15 mars 2007 à 03:34
Personnellement, pour trouver le chemin exact de "Mes documents" j'utilise la fonction du shell SHGetFolderPath(). Voici un exemple:

#include <windows.h>
#include <shlobj.h>

char buffer[MAX_PATH];
SHGetFolderPath(0,CSIDL_PERSONAL,0,0,buffer);

Pour pouvoir l'utliser dans le membre lpstrFile de la structure OPENFILENAME, il faut ajouter \*.* ou une autre extension au chemin récupéré dans buffer:
lstrcat(buffer,"\\*.*");
ofn.lpstrFile=buffer;

J'espère que ça fonctionnera aussi sous Vista.
3
racpp Messages postés 1910 Date d'inscription vendredi 18 juin 2004 Statut Modérateur Dernière intervention 14 novembre 2014 15
14 mars 2007 à 12:27
Salut,
Tu peux utiliser le membre lpstrFile de la structure OPENFILENAME comme ceci:
char buffer[MAX_PATH];
OPENFILENAME ofn;
...
lstrcpy(buffer,"C:\\Documents and Settings\\NomUtilisateur\\Mes documents\\*.*");
ofn.lpstrFile=buffer;
...

Ainsi, tu n'auras pas besoin d'initialiser le membre lpstrInitialDir et le dossier initial sera toujours celui indiqué plus haut.
Dans l'exemple, il faudra remplacer NomUtilisateur par le nom d'utilisateur correct.
Je ne fais pas de MFC mais c'est facile à adapter.
0
inflamers Messages postés 17 Date d'inscription lundi 20 mars 2006 Statut Membre Dernière intervention 14 mai 2007
14 mars 2007 à 18:18
Hum, j'y avais pensé à faire comme ça, le truc c'est que l'utilisateur peut avoir déplacer mes documents ailleurs ke dans documents and settings (comme moi par exemple). De plus je ne suis pas sûr que cela fonctionne sous Vista, mon soft doit être compatible. Cela dit Program Files, vista comprend, alors ke lui renseigne "Programmes" en francais... donc peut etre...
Mais ce ke je cherche c plutot un alias général ki sait où est exactement Mes Documents, genre une variable d'environnement Windows comme on trouve pour TMP ou TEMP...
Mais merci kan meme !!!
0
inflamers Messages postés 17 Date d'inscription lundi 20 mars 2006 Statut Membre Dernière intervention 14 mai 2007
15 mars 2007 à 12:45
C'est cool, c'est exactement ce qu'il me fallait ! merci !
inflamers
0