otofraise
Messages postés66Date d'inscriptionvendredi 4 avril 2003StatutMembreDernière intervention 4 novembre 2010
-
25 août 2005 à 19:39
otofraise
Messages postés66Date d'inscriptionvendredi 4 avril 2003StatutMembreDernière intervention 4 novembre 2010
-
26 août 2005 à 15:27
Bonjour,
J'aimerais savoir s'il existe un composant qui permet d'obtenir l'arborescence des repertoires/fichiers d'une machine, qui possede en racine le bureau de Windows.
Il s'agit de l'arborescence qui permet d'acceder rapidement a "Mes documents", au Poste de Travail ainsi qu'aux favoris reseaux.
Je bosse avec C++ Builder 6 et les composants existant permettent seulement de parcourir les repertoires du lecteur specifie et ne donnent pas acces au reseau.
Existe t il un composant qui liste les repertoires de cette facon :
ou faut il que je me fasse un composant qui s'en occupe.
Peut etre est il possible d'obtenir ce type d'arborescence via les API ?
vinc1008881
Messages postés257Date d'inscriptiondimanche 22 août 2004StatutMembreDernière intervention29 septembre 20103 25 août 2005 à 19:53
ou via les API c'est possible : Avec GetOpenFileName ()
OPENFILENAME st;
char buffer[MAX_PATH];
// Pas de fichier par défaut
buf[0]='';
// On met tous les champs inutilisés à 0
memset(&st,0,sizeof(OPENFILENAME));
st.lStructSize=sizeof(OPENFILENAME);
// hDlg est le HWND de la boite de dialogue qui demande l'ouverture
// Ou NULL si la boite de dialogue n'a pas de fenêtre parent
st.hwndOwner=hDlg;
// La syntaxe est : Description1Filtre1Description2Filtre2
st.lpstrFilter="Executables - Fichiers de commandes*.exe;*.bat";
st.lpstrFile=buffer;
st.nMaxFile=MAX_PATH;
st.lpstrTitle="Recherche de l'exécutable";
st.Flags=NULL;
// Contient le répertoire initial ou NULL
st.lpstrInitialDir=NULL;
if(GetOpenFileName(&st))
// buffer contient notre chemin
otofraise
Messages postés66Date d'inscriptionvendredi 4 avril 2003StatutMembreDernière intervention 4 novembre 2010 25 août 2005 à 20:29
Merci pour ta reponse vinc1008881 !
Je ne savais afficher un dialog d'ouverture qu'a travers les composants de borland . Grace a toi je vais pouvoir me liberer un peu plus de la VCL .
Cependant (et oui je sais je suis horriblement exigeant ) je voudrais que l'arborescence ci-dessus s'affiche dans la fenetre de base, comme un panel ou un treeview. Cette arborescence permet de selectionner des repertoires, sans avoir a selectionner de fichier. D'ailleurs, on la retrouve dans l'exemple que tu m'as donne, dans la liste deroulante intitulee "Rechercher dans" situé en au du dialog d'ouverture.
otofraise
Messages postés66Date d'inscriptionvendredi 4 avril 2003StatutMembreDernière intervention 4 novembre 2010 26 août 2005 à 09:17
Encore une fois, Merci BruNews !
C'est bien l'arborescence que je cherchais. Mais est il possible de l'obetenir, non pas dans une boite de dialogue, mais comme un element de la fenetre principale ?
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 26 août 2005 à 09:51
Je pense que oui, on peut quasi tout faire avec l'API Windows, mais je n'ai jamais eu à le faire.
Il faudra lui dévier sa defProc pour récup le ENTER ou sa notif de fermeture, soit par hook soit par sous classement, c'est à tester.