Explorateur windows

Soyez le premier à donner votre avis sur cette source.

Vue 24 702 fois - Téléchargée 3 250 fois

Description

Salut, je sais que ce code est present deja sur le site.

Ma version a cependant une particularite : sa rapidité, et la fidelite de sa reproduction.

je sais que pour l'instant, il n'y a qu'un treeview, mais quand même...

je n'utilises pas les FSO, ni les API "classiques" (FindFirstFile , FindClose...) sur les fichiers, je tapes directement dans l'architecture vue dans le vrai explorateur, en cherchant le pointeur vers le bureau, et en parcourant la liste qui y est rattachée, et ainsi de suite.

pour les icones, même combat, je rattache le controle a l'imagelist du systeme : pas de probleme d'extraction des icones, ni de doublons... Je n'ai qu'a recuperer l'indice de l'icone pour un fichier donné au moment ou j'ajoutes un noeud.

j'ai enormement fouillé MSDN, et ai trouvé une mine d'or : Shell32.dll
ca me permet même d'affirmer, qu'il serait pas impossible que mon code devienne un explorateur 100% identique, branché sur les menus systemes.....

ce code est niveau 3 car je parle de pointeurs, d'interface, d'allocation dynamique de memoire ( et oui, on est bien en VB6) et de subclassing. J'ai pu en effet trouver un .Tlb ( mais si, les fichiers qu'on ajoute dans les references !) qui donne acces a deux interfaces d'importance ici : IMalloc et IShellFolder.

j'ai passé 24heure de coding insoutenables, a essayer d'appliquer ce que je trouvais(ce que je comprennais ??) sur MSDN, sans jamais pouvoir tester (Avant de faire rouler une voiture, il faut avoir construit un certains nombre d'elements....) et finalement, le bureau est timidement apparu. puis est arrivé son contenu, et toujours pas d'icones !!!! et voila, au bout de trois jours de neurones en fusion, de crises de nerfs, de tympans percés (je bosse avec la musique a fond, ca m'aide a me concentrer......) le contenu est complet !!!

il y a encore surement des bugs, mais bon, j'etais trop content de voir enfin mon code fonctionner, je voulais le partager :)

Une derniere chose, j'ai codé certaines fonctions, m'apercevant sur MSDN que celles-ci existent dans Shell32.dll.
pas de regret, ces api n'existent qu'a partir de Windows 2000 , mon code fontionne, lui sur 98....
et quand j'ai trouvé une API compatible sur 98, impossible de la voir fonctionner.... celle-ci, je l'ai recodée aussi !!
Vive la compatibilité, et voila !! ce code fonctionne (en principe) sous 98.....

je vous laisse vous amuser, a grand coup de neurones

Source / Exemple :


' - Les elements sont dorénavant triés comme sous l'explorateur

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
162
Date d'inscription
vendredi 27 janvier 2006
Statut
Membre
Dernière intervention
21 avril 2015

Salut RenField,

Ton ReyXplorer fonctionne à merveille. Je l'ai intégré dans ma dernière source.

J'ai cependant été obligé de ne mettre qu'un treeView par form (donc j'ai géré une MDIForm à l'aide de ton code http://www.vbfrance.com/code.aspx?ID=17487) En effet, j'avais une belle plante avec 2 treview sur la form...

Maintenant, il ne me reste plus qu'à éplucher en détail ton code pour gérer le DragDrog dans ton trieView... Dur dur...

En tous cas, merci une fois encore pour ce code.

Cordialement,
ym_trainz
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
65
le zip contient les sources du tlb (de mémoire)
Messages postés
162
Date d'inscription
vendredi 27 janvier 2006
Statut
Membre
Dernière intervention
21 avril 2015

Salut RenField,

Comme je sais que les ReySource fonctionnent ^^ ,
J'aime bien savoir pourquoi je n'arrive pas à les faire fonctionner donc j'approfondis ;-)

Je peux dire aussi que c'est plus stable avec ton code source qu'avec l'ocx compilée.

ch'tite question :
Je n'ai pas eu besoin de typelib.zip, c'est normal ? Peut-être qu'avec ma version de vb6, c'est déjà inclus ? (pour savoir si je devrai l'intégrer à mon projet le jour où je le mettrai en ligne)

(Bien sûr, ISHF_Ex.tlb est indispensable)

Cordialement,
ym_trainz
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
65
mtv doit etre Nothing a ce moment là...
ravi que tu te sois donné la peine
Messages postés
162
Date d'inscription
vendredi 27 janvier 2006
Statut
Membre
Dernière intervention
21 avril 2015

Salut RenField,

J'ai laissé tombé l'ocx de Yomm car j'avais une plante.
J'ai repris avec tes sources.

J'ai utilisé 2 treeview dans mon projet
Quand je termine mon prog, j'ai un message d'erreur (appli compilée ou pas):

Run-time error 91
Object variable or With block not set

J'ai vu qu'avec un on error, ça règle le problème qui n'apparaît qu'à la fermeture de l'appli :

Module_Treeview_Operation
procedure -> RemoveRootFolder.

Voilà, je n'ai pas trop saisi le pourquoi de la chose mais avec ce on error [exit sub], ça a l'air de coller.

Soit donc (pour ceux qui ne voit pas trop l'histoire ;-)

'# Permet de vider l'arbre
Public Sub RemoveRootFolder()
On Error GoTo err1 'Ajout en question
If mTv.Nodes.Count Then
mTv.Nodes(1).Root.Expanded = False
Call mTv.Nodes.Remove(mTv.Nodes(1).Root.Index)
End If
Exit Sub
err1:
'c'est l'erreur dans le unload des forms (terminate)
End Sub

En tous cas, encore bravo !
Cordialement,
ym_trainz
Afficher les 68 commentaires

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.