Код:
#include <WindowsConstants.au3>
#include <GUITreeView.au3>
#include <File.au3>
$hGUI = GUICreate("Test", 400, 500)
$hTreeView = GUICtrlCreateTreeView(6, 6, 300, 450, -1, $WS_EX_STATICEDGE+$WS_EX_CLIENTEDGE)
_GUICtrlTreeView_SetBkColor($hTreeView , 0xDBDBDB )
$idDiscItem=GUICtrlCreateTreeViewItem("D:",$hTreeView)
_GUICtrlTreeView_SetIcon($hTreeView,$idDiscItem,"shell32.dll",7)
$Exit_Button = GUICtrlCreateButton("Exit", 330, 470, 60, 20)
GUISetState()
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case -3, $Exit_Button
Exit
Case Else
If $nMsg <= 0 Then ContinueLoop
$iItem_CtrlID = GUICtrlRead($hTreeView)
$sFullName=StringReplace(_GUICtrlTreeView_GetTree($hTreeView, $iItem_CtrlID) ,'|','\')
UpDateTV($hTreeView,$iItem_CtrlID)
If StringInStr ( FileGetAttrib ($sFullName ) , "D") Then ContinueLoop
ShellExecute($sFullName)
EndSwitch
WEnd
Func UpDateTV($hTV,$idItem)
If _GUICtrlTreeView_GetChildren($hTV,$idItem) =False Then
$aFolderList=_FileListToArray( $sFullName,'*',2)
For $i =1 To UBound($aFolderList)-1
$hChild=GUICtrlCreateTreeViewItem ( $aFolderList[$i], $idItem )
_GUICtrlTreeView_SetIcon($hTV,$hChild,"shell32.dll",3)
Next
$aFileList=_FileListToArray( $sFullName,'*',1)
For $i =1 To UBound($aFileList)-1
$hChild=GUICtrlCreateTreeViewItem ( $aFileList[$i], $idItem )
_GUICtrlTreeView_SetIcon($hTV,$hChild,"shell32.dll",0)
Next
_GUICtrlTreeView_Expand($hTV, $idItem)
EndIf
EndFunc
© gregaz
|