[R] Icone de fichier dans un TreeView

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Avatar du membre
L4crymal
Niveau 8
Niveau 8
Messages : 513
Enregistré le : mer. 24 sept. 2008 14:53
Status : Hors ligne

[R] Icone de fichier dans un TreeView

#1

Message par L4crymal »

Bonjour, je fais en ce moment un script qui répertorie tous les fichiers d'un dossier puis les affiche dans un TreeView.

Et j'aimerai que chaque nom de fichier est son icône en face.


Merci de votre aide.
Modifié en dernier par L4crymal le lun. 05 oct. 2009 18:15, modifié 1 fois.
Avatar du membre
Iste
Niveau 11
Niveau 11
Messages : 1870
Enregistré le : jeu. 04 déc. 2008 14:21
Localisation : 76
Status : Hors ligne

Re: [..] Icone de fichier dans un TreeView

#2

Message par Iste »

a l'aide du fameux <FileListToArray3.au3> et de ce topic, voici ;)

Code : Tout sélectionner

#include <GUIListView.au3>
#include <Constants.au3>
#include<FileListToArray3.au3>


Global $GUI_MAIN = GUICreate("Au3FTP", 500, 200)
Global $ListView1 = GUICtrlCreateListView("Name                                     ",0,0,500,200)
Global $hListView1= GUICtrlGetHandle($ListView1)
_GUICtrlListView_SetImageList($ListView1, _GUIImageList_GetSystemImageList(), 1)

$ar_Array = _FileListToArray3 ("C:\Documents and Settings\Iste\Bureau", "*", 1)
_ArrayDelete($ar_Array,0)
For $i = 0 To UBound($ar_Array) -1
_GUICtrlListView_AddItem($hListView1, $ar_Array[$i], _GUIImageList_GetFileIconIndex($ar_Array[$i]))
Next

GUISetState(@SW_SHOW)

While True
    Sleep(100)
WEnd

Func _GUIImageList_GetSystemImageList()

    Local $FileInfo = DllStructCreate('dword hIcon; int iIcon; DWORD dwAttributes; CHAR szDisplayName[255]; CHAR szTypeName[80];')
    Local $uFlags = BitOR(0x10, 0x4000, 0x1)
    Local $hImageList = _WinAPI_SHGetFileInfo( ".txt", _
                                        0x80, _
                                        DllStructGetPtr($FileInfo), DllStructGetSize($FileInfo), _
                                        $uFlags )
    Return $hImageList
EndFunc

Func _GUIImageList_GetFileIconIndex($sFileSpec)

    Local $FileInfo = DllStructCreate('dword hIcon; int iIcon; DWORD dwAttributes; CHAR szDisplayName[255]; CHAR szTypeName[80];')
    Local $uFlags = BitOR(0x4000,0x10,0x1)
    Local $hImageList = _WinAPI_SHGetFileInfo( $sFileSpec, _
                                        $FILE_ATTRIBUTE_NORMAL, _
                                        DllStructGetPtr($FileInfo), DllStructGetSize($FileInfo), _
                                        $uFlags )

    Return DllStructGetData($FileInfo, "iIcon")

EndFunc

Func _WinAPI_SHGetFileInfo($pszPath, $dwFileAttributes, $psfi, $cbFileInfo, $uFlags)
    Local $return = DllCall( "shell32.dll", "DWORD*", "SHGetFileInfo", _
                             "str", $pszPath, "DWORD", $dwFileAttributes, _
                             "ptr", $psfi, "UINT", $cbFileInfo, _
                             "UINT", $uFlags )
    If @error Then Return SetError(@error, 0, 0)
    Return $return[0]
EndFunc
 
Signez ici
Avatar du membre
L4crymal
Niveau 8
Niveau 8
Messages : 513
Enregistré le : mer. 24 sept. 2008 14:53
Status : Hors ligne

Re: [..] Icone de fichier dans un TreeView

#3

Message par L4crymal »

Ow merci ^^
Répondre