Driveview ==> arborescence affichant les lecteurs logiques et physiques

Soyez le premier à donner votre avis sur cette source.

Vue 6 157 fois - Téléchargée 762 fois

Description

Salut, ce code (UserControl) est basé sur un treeview, il affiche les lecteurs logiques et physiques présents sur le PC. Les icones des lecteurs sont affichées.

Voici les différents events gérés par le contrôle DriveView :

-Click
-Collapse
-DblClick
-Expand
-KeyDown
-KeyPress
-KeyUp
-MouseDown
-MouseMove
-MouseUp
-NodeClick

Voici les différentes fonctions du UserControl :

-Refresh (rafraichit la vue)
-IsSelectedDriveAccessible (booléenne qui renvoie si oui ou non le lecteur sélectionnée est accessible)
-Clear (vide la vue)
-GetVisibleCount (identique au Treeview)
-HitTest (identique au treeview)
-GetSelectedDrive (récupère toutes les infos dispos sur le lecteur : taille, secteurs, clusters, nom, n° de série...)
-Drives (permet de récupérer les fonctions de la classe clsDiskInfos ==> permet de récuperer toute les infos que l'on veut sur les disques)

Evidemment, les propriétés Nodes et SelectedItem sont gérées de la même façons que pour un TV normal (lecture + écriture).

Les différents propriétés :

-Sorted
-SelectedItem
-Nodes
-Object
-Style
-LineStyle
-Index
-hwnd
-BorderStyle
-Appearance
-Indentation
-DisplayLogicalDrives
-DisplayPhysicalDrives
-HideSelection
-LogicalDrivesString
-PhysicalDrivesString

Un exemple montre succintement comment récupérer des infos sur les disques sélectionnés, et à quoi servent les propriétés PhysicalDrivesString, LogicalDrivesString, DisplayLogicalDrives, DisplayPhysicalDrives.

Source / Exemple :


'Dans le zip, avec un exemple
'L'exemple montre aussi comment utiliser la propriétés Nodes du DriveView

Conclusion :


Ce code est relativement simple.

Si vous voyez des bugs, prévenez moi !

De même, si vous avez des suggestions, remarques, conseils, commentaires...etc, n'hésitez pas ! Et notez également svp ;)

@+

(compatible Windows Vista)

Codes Sources

A voir également

Ajouter un commentaire

Commentaires

Messages postés
1812
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
26 octobre 2010
1
Re, alors :

- on accède aux fonctions de la classe clsDiskInfo (donc toute les infos disques y compris strDriveType) avec la méthode Drives du UserControl
- je garde la v5 du TreeView
- j'ai ajouté les propriétés Nodes et SelectedItem en écriture
- ajouté une key dans le IMG pour pouvoir afficher les disques inaccessibles (voir exemple et screenshot pour comprendre)
- MAJ de l'exemple et du screen (le voir pour comprendre)


Merci pour la note ;)
@+
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
35
on s'est croisé
beh ma réponse peut être une piste ;)
(sinon je dirais 5, idem pour l'imagelist, effets possibles pour le 32px si tu veux changer les icônes. à vérifier)

++ ;)
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
35
beh voilà c'est tout bon :p
reste éventuellement à personnaliser l'affichage du treeview (voir dans les sources de Yomm je crois)

tite question, comment accède-t'on à GetStringDriveType par l'UC?
si on ne peut pas (pas trouvé en tout cas), çà peut être utile (tant string que valeur int)

un 10 de plus, beau boulot ;)
Messages postés
1812
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
26 octobre 2010
1
Heu en fait non, j'ai pas fini ;)

Je vais rajouter également les properties Nodes et SelectedItem en écriture.



Par contre j'hésite : je prend un TreeView v5.0 (actuellement c'en est un) ou un TreeView v6.0 ??

Sachant que le 5 a l'avantage d'accepter le style XP avec un *.manifest, ce qui n'est pas le cas du 6. Mais sachant également que le 6 à de nouvelles properties (notamment Forecolor qui est important).

?
@+
Messages postés
1812
Date d'inscription
mardi 31 mai 2005
Statut
Membre
Dernière intervention
26 octobre 2010
1
Salut, et merci ;)

Pour le enum, je l'ai fait.
Pour le bug de chez toi : c'est normal, j'avais oublié de changer une valeur (fonction GetLogicalDriveList) dans la dernière mise à jour ==> corrigé.
Pour le premier bug que tu m'avais cité ("physique") ==> je n'avais en fait pas résolu en profondeur le bug, maintenant c'est fait.
Et j'ai également mis à jour le screen ;)


Cette fois c'est bon je crois !!

@+
Afficher les 14 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.