Code : Tout sélectionner
#include<Array.au3>
#include <ProgressConstants.au3>
#include<_FileListToArrayNT.au3>
#include <GUIConstantsEx.au3>
#include <GUIlistView.au3>
#include <EditConstants.au3>
#include <WindowsConstants.au3>
#include <GuiStatusBar.au3>
Global $Form1 = GUICreate("Form1", 400, 325, 192, 124)
GUICtrlCreateLabel("Lister le bureau des dossiers vides", 5, 10, 300, 20)
GUICtrlSetFont(-1, 9, 400, 0, "comic sans ms")
$ListDesktopLV = GUICtrlCreateListView("", 0, 40, 400, 200, -1, $LVS_EX_CHECKBOXES)
$ListDesktopBT = GUICtrlCreateButton("Lister", 310, 10, 80, 20)
$DelThisDir = GUICtrlCreateButton("Supprimer la sélection", -100, -100, 100, 20)
$raz = GUICtrlCreateButton("Actualiser", -100, -100, 100, 20)
$ExitTool = GUICtrlCreateButton("Quitter", -100, -100, 100, 20)
$hStatus = _GUICtrlStatusBar_Create($Form1)
_GUICtrlStatusBar_SetText($hStatus, "En attente...")
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $ListDesktopBT
$Progress = GUICtrlCreateProgress(0, 260, 400, 20, $PBS_MARQUEE)
GUICtrlSendMsg($Progress, 0x0400 + 10, 1, Number(30)) ; on envoie la ProgressBar
_ListDesktop(@DesktopDir)
GUICtrlDelete($Progress)
GUICtrlSetPos($DelThisDir, 10, 260, 120, 20)
GUICtrlSetPos($raz, 140, 260, 120, 20)
GUICtrlSetPos($ExitTool, 270, 260, 120, 20)
Case $DelThisDir
For $i = 1 To _GUICtrlListView_GetItemCount($ListDesktopLV)
Sleep(10)
If _GUICtrlListView_GetItemChecked($ListDesktopLV, $i - 1) Then
msgbox(0,"", "on est sur la ligne " & $i & " de la listview")
; DirRemove(_GUICtrlListView_GetItemTextString($ListDesktopLV, $i - 1))
; Sleep(500)
; If Not FileExists(_GUICtrlListView_GetItemTextString($ListDesktopLV, $i - 1)) Then _GUICtrlListView_DeleteItem($ListDesktopLV, $i - 1)
_GUICtrlListView_DeleteItem($ListDesktopLV, $i - 1)
EndIf
Next
_GUICtrlStatusBar_SetText($hStatus, "dossiers vides : " & _GUICtrlListView_GetItemCount($ListDesktopLV))
case $raz
_GUICtrlListView_DeleteColumn($ListDesktopLV, 0)
_GUICtrlListView_DeleteAllItems(GUICtrlGetHandle($ListDesktopLV))
EndSwitch
WEnd
Func _ListDesktop($DesktopDir)
GUICtrlSetPos($DelThisDir, -100, -100, 100, 20)
GUICtrlSetPos($raz, -100, -100, 100, 20)
GUICtrlSetPos($ExitTool, -100, -100, 100, 20)
_GUICtrlListView_DeleteColumn($ListDesktopLV, 0)
_GUICtrlListView_DeleteAllItems(GUICtrlGetHandle($ListDesktopLV))
_GUICtrlListView_AddColumn($ListDesktopLV, "Liste des dossiers vides", 400)
$ListDesktopDir = _FileListToArrayNT($DesktopDir, "*.*", 2, 2, True, "Temp")
$a = 1
For $i = 1 To $ListDesktopDir[0]
Sleep(10)
$size = DirGetSize($ListDesktopDir[$i], 1)
If $size[0] = 0 And $size[1] = 0 And $size[2] = 0 Then
_GUICtrlStatusBar_SetText($hStatus, $ListDesktopDir[$i])
GUICtrlCreateListViewItem($a & " " & $ListDesktopDir[$i], $ListDesktopLV)
$a += 1
EndIf
Next
_GUICtrlStatusBar_SetText($hStatus, "dossiers vides : " & _GUICtrlListView_GetItemCount($ListDesktopLV))
EndFunc ;==>_ListDesktop