Page 1 sur 1

[Ex] TreeView de dossiers avec sélection.

Posté : jeu. 13 août 2009 22:21
par Tlem
Voici un exemple de script provenant du forum Anglais, qui permet d'afficher un arbre complet de l'ordinateur, de ces disques dur et de ses dossiers (voir image jointe).

Téléchargez le zip joint et amusez vous. ;)

Ancienne version téléchargée 126 fois.

Re: [Ex] TreeView de dossiers avec sélection.

Posté : ven. 14 août 2009 22:12
par Yogui
super rapide en plus merci :mrgreen:

Re: [Ex] TreeView de dossiers avec sélection.

Posté : ven. 11 juin 2010 08:46
par Gnifrus
Bonjour,

Je me permets de relancer ce sujet, car je suis très fortement interessé par ce script, mais il ne fonctionne pas chez moi.
En effet, lorsque je lance ShellTristateTreeDemo.au3, il m'affiche :

C:\ShellTristateTreeView\ShellTristateTreeView.au3(57,78) : ERROR: $CLR_NONE previously declared as a 'Const'
If Not IsDeclared("CLR_NONE") Then Global Const $CLR_NONE= 0xFFFFFFFF

C:\ShellTristateTreeView\ShellTristateTreeView.au3(197,40) : WARNING: $TVN_ITEMEXPANDING: possibly used before declaration.
Case $TVN_ITEMEXPANDING

C:\ShellTristateTreeView\ShellTristateTreeView.au3(533,33) : WARNING: $TVM_SETITEM: possibly used before declaration.
SendMessage($hWnd, $TVM_SETITEM,

C:\ShellTristateTreeView\ShellTristateTreeView.au3(542,33) : WARNING: $TVM_GETITEM: possibly used before declaration.
SendMessage($hWnd, $TVM_GETITEM,

C:\ShellTristateTreeView\ShellTristateTreeView.au3(197,40) : ERROR: $TVN_ITEMEXPANDING: undeclared global variable.
Case $TVN_ITEMEXPANDING

Je ne comprends pas bien pourquoi ?

Et d'une manière générale, quelqu'un pourrait-il expliquer quel est la démarche générale de création d'un tel script, sans rentrer dans les détails tel que utilisation d'images pour les checkBox personnalisées, les icônes à utiliser....etc...un truc simple, du style :
1) je crée un TreeView
2) je recherche les dossiers, sous-dossiers et fichiers que je place dans un tableau
3) je fais correspondre les éléments de ce tableau à mes checkBox
4) l'utilisation des sélections de checkbox sont possibles grâce à tel et tel procédés...
....etc

Il est vrai que ce script est génial (quand il fonctionne), mais permet difficilement de comprendre la méthodologie utilisée pour résoudre le problème initial, à savoir afficher les dossiers, sous-dossiers et fichiers en arborescence, comme un explorateur windows.

Merci d'avance à ceux ou celles qui me permettront d'avancer en ce sens...

Bonne journée,

Gnifrus.

Re: [Ex] TreeView de dossiers avec sélection.

Posté : ven. 11 juin 2010 09:18
par Tlem
L'archive a été mise à jour avec l'ancienne version et une version modifiée pour fonctionner avec AutoIt 3.3.6.0.

Re: [Ex] TreeView de dossiers avec sélection.

Posté : ven. 11 juin 2010 09:28
par Gnifrus
Génial !
Merci beaucoup !

Bonne journée,

Gnifrus.

Re: [Ex] TreeView de dossiers avec sélection.

Posté : sam. 09 avr. 2011 12:02
par Yoyo86220
Bonjour,

Génial! mais...
je n'arrive pas a modifier le script pour retiré les cases "CHECKBOX"...

Quelqu'un peu m'aider? MERCI!

Re: [Ex] TreeView de dossiers avec sélection.

Posté : sam. 09 avr. 2011 18:59
par Tlem
Pour les demandes d'aide, il y à une section prévue à cet effet ... :roll:

Re: [Ex] TreeView de dossiers avec sélection.

Posté : lun. 25 janv. 2016 12:00
par marcelino11
Bonjour,

Je me permets de relancer ce sujet, car j'utilisais ce fichier en version 3.3.8.1 et j'ai mis à jour autoit avec la version 3.3.14.2 et ca ne fonctionne plus, il y a des erreurs:

"C:\Program Files (x86)\AutoIt3\Include\ShellTristateTreeView.au3"(56,84) : error: $LR_LOADFROMFILE previously declared as a 'Const'.
If Not IsDeclared("LR_LOADFROMFILE") Then Global Const $LR_LOADFROMFILE = 0x0010
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~^
"C:\Program Files (x86)\AutoIt3\Include\ShellTristateTreeView.au3"(57,89) : error: $LR_LOADTRANSPARENT previously declared as a 'Const'.
If Not IsDeclared("LR_LOADTRANSPARENT") Then Global Const $LR_LOADTRANSPARENT = 0x0020
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~^
"C:\Program Files (x86)\AutoIt3\Include\ShellTristateTreeView.au3"(58,90) : error: $LR_CREATEDIBSECTION previously declared as a 'Const'.
If Not IsDeclared("LR_CREATEDIBSECTION") Then Global Const $LR_CREATEDIBSECTION = 0x2000
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~^
"C:\Program Files (x86)\AutoIt3\Include\ShellTristateTreeView.au3"(60,75) : error: $IMAGE_BITMAP previously declared as a 'Const'.
If Not IsDeclared("IMAGE_BITMAP") Then Global Const $IMAGE_BITMAP = 0
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~^
"C:\Program Files (x86)\AutoIt3\Include\ShellTristateTreeView.au3"(62,73) : error: $GWL_STYLE previously declared as a 'Const'.
If Not IsDeclared("GWL_STYLE") Then Global Const $GWL_STYLE = -16
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~ ~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~^

J'ai essayé de rechercher une nouvelle version ici et sur le forum anglais, je n'ai pas trouvé?
Pouvez-vous m'aider ? Ou existe-il une nouvelle méthode pour pouvoir avoir des cases avec trois états ?


Par avance merci
Marcel PRUDHOMME

Re: [Ex] TreeView de dossiers avec sélection.

Posté : lun. 25 janv. 2016 13:32
par walkson
Bonjour,
Désactiver les lignes correspondantes aux erreurs

Code : Tout sélectionner

;If Not IsDeclared("LR_LOADFROMFILE")		Then	Global Const $LR_LOADFROMFILE			= 0x0010
;If Not IsDeclared("LR_LOADTRANSPARENT")		Then	Global Const $LR_LOADTRANSPARENT		= 0x0020
;If Not IsDeclared("LR_CREATEDIBSECTION")	Then	Global Const $LR_CREATEDIBSECTION		= 0x2000
;If Not IsDeclared("CLR_NONE")				Then	Global Const $CLR_NONE					= 0xFFFFFFFF
;If Not IsDeclared("IMAGE_BITMAP")			Then	Global Const $IMAGE_BITMAP				= 0
If Not IsDeclared("VK_SPACE")				Then	Global Const $VK_SPACE					= 32
;If Not IsDeclared("GWL_STYLE")				Then	Global Const $GWL_STYLE					= -16
En fait, ces constantes sont déjà déclarées dans winapiconstants.au3
Fonctionne sous 3.3.12.0

Re: [Ex] TreeView de dossiers avec sélection.

Posté : lun. 25 janv. 2016 16:17
par marcelino11
C'était simple ! Je n'avais pas osé y toucher.

Merci pour la réactivité

Re: [Ex] TreeView de dossiers avec sélection.

Posté : lun. 02 juil. 2018 10:05
par marcelino11
Bonjour,

Je relance une nouvelle fois le sujet :-)
J'utilise toujours le fichier en version 3.3.14.5, il fonctionne correctement en x86, par contre il y a des soucis lorsque mon script est exécuté en x64.

Etant donné qu'il y a également des incohérences dans l'arborescence qui est crée, je me demande s'il n'y a pas un autre soucis ailleurs, notamment dans la gestion du treeview.
En faisant des recherches, le "handle" des éléments est de forme: 0x03506D86 (8 caractères) pour du x86 et de forme: 0x00000000042CB1C0 (16 caractères) pour du x64.
Est-ce cela qui pose problème ?
Avez-vous déjà eu ce genre de comportement ? Des pistes ?


Vous remerciant par avance pour votre aide
Marcel

Re: [Ex] TreeView de dossiers avec sélection.

Posté : lun. 02 juil. 2018 12:00
par marcelino11
Il y a un comportement identique avec l'aide de "_GUICtrlTreeView_AddChild".
Après compilation en x64, l'arborescence est différente de celle affichée en x86.

Edit: J'ai trouvé pour avoir de nouveau une arborescence correct en x64, par contre, l'UDF pour le tristate ne fonctionne toujours pas en x64.
J'ai cherché et testé pas mal de chose sur le forum anglais, sans succès :(