Glyph Posted December 12, 2007 Share Posted December 12, 2007 (edited) expandcollapse popup#include <GUIConstants.au3> #Include <File.au3> #Include <Array.au3> #NoTrayIcon Opt("TrayMenuMode",1) ; Default tray menu items (Script Paused/Exit) will not be shown. $showitem = TrayCreateItem("Un-Tray") TrayCreateItem("") $aboutitem = TrayCreateItem("About") TrayCreateItem("") $exititem = TrayCreateItem("Exit") TraySetState() global $ini=@HomeDrive&"\Program Files\Ethernet\EServer\EWS.ini" Global $Width = IniRead ($ini, "EWS", "Width", 200) Global $Height = IniRead ($ini, "EWS", "Height", @DesktopHeight/2) If $Width<175 OR $Width>@DesktopWidth-20 Then $Width=200 If $Height<100 OR $Height>@DesktopHeight-100 Then $Height=@DesktopHeight/2 $gui1=GUICreate("EWS v0.1 by: Ethernet",$Width,$Height,0,0,$WS_SIZEBOX) $filemenu = GuiCtrlCreateMenu ("File") $tray = GUICtrlCreateMenuItem ("Tray",$filemenu) $exits = GUICtrlCreateMenuItem ("Exit",$filemenu) $tree = GuiCtrlCreateTreeView(2, 37, $Width-5, $Height-78, BitOr($TVS_HASLINES,$TVS_LINESATROOT,$TVS_HASBUTTONS), $WS_EX_CLIENTEDGE) GUICtrlSetResizing(-1,BitOr($GUI_DOCKTOP,$GUI_DOCKBOTTOM)) GUICtrlSetImage(-1, "shell32.dll", -86, 4) $contextmenu = GUICtrlCreateContextMenu ($tree) $first = GUICtrlCreateTreeViewitem("EServer v1.2", $tree) $FileList1=_FileListToArray(@HomeDrive&"\Program Files\Ethernet\Eserver\","*",1) $FileList11=_FileListToArray(@HomeDrive&"\Program Files\Ethernet\Eserver\","*",2) $FileList111=_FileListToArray(@HomeDrive&"\Program Files\Ethernet\Eserver\*","*",2) ;========================================================================== ;======================I get confused right here!========================= ;========================================================================== $i=0 do If @Error > 0 or $FileList11[0] < 1 Then ExitLoop else $i=$i+1 $a=GUICtrlCreateTreeViewitem($FileList11[$i], $first) ; I need a way of showing all sub directorys infantly untill I run into no folders ;any ideas? GUICtrlCreateTreeViewitem($FileList111[$i], $a) ;================================================================================== if @Error > 0 or $FileList111[$i] < 1 then ; ExitLoop endif EndIf until $i = $FileList11[0] ;========================================================================== ;========================================================================== ;========================================================================== $i=0 do If @Error > 0 Then ExitLoop else $i=$i+1 GUICtrlCreateTreeViewitem($FileList1[$i], $first) EndIf until $i = $FileList1[0] $i=0 GuiSetState() While 1 $msg = GUIGetMsg() $msg2=TrayGetMsg() Select ;case $msg = $wee ;do nothing case $msg = $GUI_EVENT_CLOSE or $msg = $exits $Size=WinGetClientSize($gui1) IniWrite($ini, "EWS", "Width", $Size[0]+2) IniWrite($ini, "EWS", "Height", $Size[1]+40) ExitLoop case $msg = $tray GUISetState(@SW_HIDE,$gui1) case $msg2 = 0 ContinueLoop case $msg2 = $aboutitem Msgbox(64,"about:","A program by: Ethernet") case $msg2 = $exititem Exit case $msg2 = $showitem GUISetState(@SW_SHOW,$gui1) EndSelect WEnd GUIDelete() Exit I just confused the crap out of myself! I'm trying to make the subdirectory show its own sub-sub directorys, if there are any, if not then exitloop. Edited December 12, 2007 by BackStabbed tolle indicium Link to comment Share on other sites More sharing options...
The Ape Posted December 12, 2007 Share Posted December 12, 2007 This only goes one deep. But, gives you an idea of how to get all dir. subdir. until none exist. expandcollapse popup#include <GUIConstants.au3> #Include <File.au3> #Include <Array.au3> Dim $TreeI[2000] Dim $TreeISub[2000] Global $TreeI[2000] Global $TreeISub[2000] Global $treeview $GUI = GUICreate ("Example", 250, 250, -1, -1) $treeview = GUICtrlCreateTreeView(0, 0, 250, 250) _Populate() GUISetState () While 1 $msg = GUIGetMsg() Select Case $msg = $GUI_EVENT_CLOSE Exit EndSelect Wend Func _Populate() $RootFolder = FileSelectFolder ( "Select Folder", "") $GetLinks = _FileListToArray ($RootFolder, "*") If @Error=1 Or @Error = 4 Then ;;;; Else $i = 1 $k=1 Do $TreeI[$i] = GUICtrlCreateTreeViewitem($GetLinks[$i], $treeview) $Get_ILinks = _FileListToArray ($RootFolder&"\"&$GetLinks[$i], "*") If @Error=1 Or @Error = 4 Then ;;;; Else If $k > 1 Then $k = $k Else $k = 1 EndIf $v = 1 Do $TreeISub[$k] = GUICtrlCreateTreeViewitem($Get_ILinks[$v], $TreeI[$i]) $k = $k + 1 $v = $v + 1 Until $v = $Get_ILinks[0] + 1 EndIf $i = $i + 1 Until $i = $GetLinks[0]+1 ProgressOff() EndIf EndFunc GUIDelete () Exit FixJaw.comTriad-Art.com Link to comment Share on other sites More sharing options...
Glyph Posted December 12, 2007 Author Share Posted December 12, 2007 (edited) Yeah, I changed the post around a little. I understand your above post, but to get those dubdirectorys to then show thier own sub directorys is where i'm stuck at. Edited December 12, 2007 by BackStabbed tolle indicium Link to comment Share on other sites More sharing options...
The Ape Posted December 12, 2007 Share Posted December 12, 2007 Here's something from Holger... file explorer. It does what you want... but... it's a little... well... here ya' go. expandcollapse popup;Autoit3Ex.au3 v 0_16 ; ---------------------------------------------------------------------------- ; ; AutoIt Version: 3.1.1.73 ; Author: Holger Kotsch ; Version: 1.1 ; ; Script Function: ; Unfinished Explorer-like sample (Preview) ; ; !!! Self-API-created items are not supported !!! ; ; ---------------------------------------------------------------------------- #include <GUIConstants.au3> #include <GUITreeView.au3> #include <Misc.au3> #include <file.au3> #include <Array.au3> #Include <GuiListView.au3> #region declares ; TV functions global $TotalRows=34, $nMsg,$down,$szPath,$current Global Const $TV2M_INSERTITEM = $TV_FIRST + 0 Global Const $TV2M_GETITEMRECT = $TV_FIRST + 4 Global Const $TV2M_SETIMAGELIST = $TV_FIRST + 9 Global Const $TV2M_SETITEM = $TV_FIRST + 13 Global Const $TV2M_HITTEST = $TV_FIRST + 17 Global Const $TV2I_FIRST = 0xFFFF0001 ; Masks Global Const $TV2IF_IMAGE = 0x0002 Global Const $TV2IF_HANDLE = 0x0010 Global Const $TV2IF_SELECTEDIMAGE = 0x0020 Global Const $TV2IF_CHILDREN = 0x0040 ; States Global Const $TV2IS_CUT = 0x0004 Global Const $TV2IS_DROPHILITED = 0x0008 Global Const $TV2IS_BOLD = 0x0010 Global Const $TV2IS_EXPANDED = 0x0020 ; Relationship/specific item Global Const $TV2GN_ROOT = 0x0000 Global Const $TV2GN_PREVIOUS = 0x0002 Global Const $TV2GN_FIRSTVISIBLE = 0x0005 Global Const $TV2GN_NEXTVISIBLE = 0x0006 Global Const $TV2GN_PREVIOUSVISIBLE = 0x0007 Global Const $TV2GN_DROPHILITE = 0x0008 ; Hittest infos Global Const $TV2HT_NOWHERE = 0x0001 Global Const $TV2HT_ONITEMICON = 0x0002 Global Const $TV2HT_ONITEMLABEL = 0x0004 Global Const $TV2HT_ONITEMINDENT = 0x0008 Global Const $TV2HT_ONITEMBUTTON = 0x0010 Global Const $TV2HT_ONITEMRIGHT = 0x0020 Global Const $TV2HT_ONITEMSTATEICON = 0x0040 Global Const $TV2HT_ONITEM = BitOr($TV2HT_ONITEMICON, $TV2HT_ONITEMLABEL, $TV2HT_ONITEMSTATEICON) Global Const $TV2HT_ABOVE = 0x0100 Global Const $TV2HT_BELOW = 0x0200 Global Const $TV2HT_TORIGHT = 0x0400 Global Const $TV2HT_TOLEFT = 0x0800 ;If Not IsDeclared("LVM_SETEXTENDEDLISTVIEWSTYLE") Then Global Const $LVM_SETEXTENDEDLISTVIEWSTYLE = 0x1036 If Not IsDeclared("LVM_SETCOLUMN") Then Global Const $LVM_SETCOLUMN = 0x101A ;If Not IsDeclared("LVCF_FMT") Then Global Const $LVCF_FMT = 0x0001 ;If Not IsDeclared("LVCFMT_RIGHT") Then Global Const $LVCFMT_RIGHT = 0x0001 ;If Not IsDeclared("LVM_GETHEADER") Then Global Const $LVM_GETHEADER = 0x101F Global $nCtrls = 0 Global $hCurItem = 0 Global $hImageList = 0 Global $szDirType = RegRead("HKCR\Directory", "") If $szDirType = "" Then $szDirType = "Directory" ;$indexingGUI = GUICreate("Sorry.. Finding Folder structure!", 300, 50, (@DesktopWidth - 300) / 2, (@DesktopHeight - 50) / 2) ;$indexingLabel=GUICtrlCreateLabel("Sorry..Only time you'll have to wait! Please Wait...", 30, 1, 250, 25) ;$indexstatuslabel = GUICtrlCreateLabel("", 20, 25, 280, 20) ;GUISetState() $hGui = GUICreate("AutoIt3-Explorer V1.1a ;-)", 762, 578, -1, -1, BitOr($WS_SIZEBOX, $WS_MAXIMIZEBOX, $WS_MINIMIZEBOX, $WS_CAPTION, $WS_POPUP, $WS_SYSMENU)) $nFileMenu = GUICtrlCreateMenu("&File") $editMenu = GUICtrlCreateMenu("&Edit") $nViewMenu = GUICtrlCreateMenu("&View") $nViewItem1 = GUICtrlCreateMenuItem("Icons", $nViewMenu, -1, 1) $nViewItem2 = GUICtrlCreateMenuItem("Report", $nViewMenu, -1, 1) GUICtrlSetState(-1, $GUI_CHECKED) $nViewItem3 = GUICtrlCreateMenuItem("Small Icons", $nViewMenu, -1, 1) $nViewItem4 = GUICtrlCreateMenuItem("List", $nViewMenu, -1, 1) $nExtraMenu = GUICtrlCreateMenu("E&xtra") $nHelpMenu = GUICtrlCreateMenu("&?") $nExitItem = GUICtrlCreateMenuItem("Exit",$nFileMenu) $nAboutItem = GUICtrlCreateMenuItem("About",$nHelpMenu) GUICtrlCreateLabel("", 0, 0, 800, 2, BitOr($SS_SUNKEN, $SS_BLACKRECT)) GUICtrlSetResizing(-1, $GUI_DOCKLEFT + $GUI_DOCKTOP + $GUI_DOCKHEIGHT) GUICtrlCreateLabel("Address", 5, 5, 50, 20) GUICtrlSetResizing(-1, $GUI_DOCKLEFT + $GUI_DOCKTOP + $GUI_DOCKHEIGHT + $GUI_DOCKWIDTH) $nAddressbar = GUICtrlCreateCombo("C:\", 50, 3, 300, 20) GUICtrlSetResizing(-1, $GUI_DOCKLEFT + $GUI_DOCKTOP + $GUI_DOCKHEIGHT) $Tab1combo1 = GUICtrlCreateCombo("# Rows", 400, 3, 50, 30);, $CBS_SIMPLE) GUICtrlSetData(-1, "10|20|34|50|100|150|300|500|1000|1200|1500|2000|3000|4000", "34") ;Set default 10 GUICtrlCreateLabel("Rows",360, 3) $TopButton = GuiCtrlCreateButton("|<", 460, 3 ,30, 20) GUICtrlSetTip($TopButton,"$TopButton") $UpButton = GuiCtrlCreateButton("<", 500, 3, 30, 20) GUICtrlSetTip($UpButton,"$UpButton") GUICtrlCreateLabel("Pg Up", 580, 6,35,15) $updown = GUICtrlCreateInput("0", 540, 3, 35, 20) $UpOneScreen = GUICtrlCreateUpdown($updown) GUICtrlSetTip($UpOneScreen, "$UpOneScreen") $DownButton = GuiCtrlCreateButton(">", 620, 3, 30, 20) GUICtrlSetTip($DownButton,"$DownButton") $Bottom = GuiCtrlCreateButton(">|", 660, 3, 30, 20) GUICtrlSetTip($Bottom,"$Bottom") ;GUICtrlCreateLabel("Dn", 680, 3) ;$down = GUICtrlCreateInput("0", 580, 3, 35, 20) ;$down = GUICtrlCreateInput("0", 540, 540, 150, 18) ;$DownOneScreen = GUICtrlCreateUpdown($down) ;GUICtrlSetTip($DownOneScreen, "$DownOneScreen") $Value = GUICtrlCreateCombo("0", 700, 3, 55, 20);, $CBS_SIMPLE) GUICtrlCreateLabel("Num row", 780, 3) GUICtrlSetTip($Value, "Show Control cursor, hold cursor for sample label") $arDrives = DriveGetDrive("ALL") $nTreeView = GUICtrlCreateTreeView(0, 25, 310, 513, -1, $WS_EX_CLIENTEDGE) GUICtrlSetResizing(-1, $GUI_DOCKLEFT + $GUI_DOCKTOP + $GUI_DOCKBOTTOM + $GUI_DOCKWIDTH) GUICtrlSetState(-1, $GUI_FOCUS) GUICtrlSetImage(-1, "shell32.dll", 3, 4) ; GUICtrlSetImage(-1, "shell32.dll", 4, 2) ; GUICtrlSetImage(-1, "shell32.dll", 7) ; Removable GUICtrlSetImage(-1, "shell32.dll", 8) ; Fixed GUICtrlSetImage(-1, "shell32.dll", 9) ; Network GUICtrlSetImage(-1, "shell32.dll", 11) ; CD-ROM $nListView = GUICtrlCreateListView("Name|Size|Type|Changed|No.",314, 25, 447, 513) GUICtrlSetResizing(-1, $GUI_DOCKLEFT + $GUI_DOCKRIGHT + $GUI_DOCKTOP + $GUI_DOCKBOTTOM) GUICtrlSendMsg(-1, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_GRIDLINES, $LVS_EX_GRIDLINES) GUICtrlListViewSetColumnFormat($nListView, 1, $LVCFMT_RIGHT) GUICtrlListViewSetColumnFormat($nListView, 4, $LVCFMT_RIGHT) GUICtrlSetImage(-1, "shell32.dll", 0) $statusbarobj = GUICtrlCreateLabel(" Object(s)",0, 540, 150, 18, $SS_SUNKEN) GUICtrlSetResizing(-1, $GUI_DOCKLEFT + $GUI_DOCKBOTTOM + $GUI_DOCKHEIGHT + $GUI_DOCKWIDTH) $statusbarsize = GUICtrlCreateLabel(" MB (Free Space: 0 MB)", 152, 540, 610, 18, $SS_SUNKEN) GUICtrlSetResizing(-1, $GUI_DOCKLEFT + $GUI_DOCKRIGHT + $GUI_DOCKBOTTOM + $GUI_DOCKHEIGHT) ;$down = GUICtrlCreateInput("0", 540, 540, 35, 20) $down = GUICtrlCreateLabel("0", 540, 544,35,13) $DownOneScreen = GUICtrlCreateUpdown($down) GUICtrlSetTip($DownOneScreen, "$DownOneScreen") GUICtrlCreateLabel("Pg Dn", 580, 544,45,13) $nSplitter = GUICtrlCreateLabel("", 310, 29, 4, 509) GUICtrlSetResizing(-1, $GUI_DOCKLEFT + $GUI_DOCKTOP + $GUI_DOCKBOTTOM + $GUI_DOCKWIDTH) GUICtrlSetCursor(-1, 13) GUICtrlSetData($Tab1combo1,$TotalRows) GUISetState(@SW_SHOW, $hGui) FillTreeRoot($arDrives) _GUICtrlListViewSetColumnWidth ($nListView, 0, 180) ;Set Column with _GUICtrlListViewSetColumnWidth ($nListView, 4, 20) ;Set Column with UpdateWindow($nTreeView) $nFirstItem = 0 $nLastItem = 0 $nOldItem = 0 DirToList("C:") $szCurrentPath = "C:" $szOldPath = "" $curx = 0 $curpressed = 0 $splitx1 = 48 $splitx2 = 52 $savex = 310 $pressed = 0 #endregion declares While 1 $nMsg = GUIGetMsg() $arInfo = GUIGetCursorInfo() If $pressed = 1 And $arInfo[2] = 0 Then $pressed = 0 If $pressed = 1 And $arInfo[2] = 1 Then $arPos = WinGetPos($hGui) If $arInfo[0] > 100 And $arInfo[0] < $arPos[2] - 100 Then If $arInfo[0] <> $savex Then ControlMove($hGui, "", $nSplitter, $arInfo[0] - 2, 29) ControlMove($hGui, "", $nTreeView, 0, 25, $arInfo[0] - 2) ControlMove($hGui, "", $nListView, $arInfo[0] + 2, 25, $arPos[2] - $arInfo[0] - 10) $savex = $arInfo[0] EndIf EndIf EndIf If IsArray($arInfo) Then ;insert this at line 177 If $arInfo[4] = $nTreeView And $arInfo[2] And WinActive($hGui) Then $nFlag = 0 $hItem = TV_Hittest($nTreeView, $nFlag) If BitAnd($nFlag, $TV2HT_ONITEMBUTTON) Or BitAnd($nFlag, $TV2HT_ONITEM) Then GUISetState(@SW_LOCK) CheckTreeFill($nTreeView, $hItem) GUISetState(@SW_UNLOCK) GUICtrlSetData($nAddressbar, GetTreePath($nTreeView, $hItem, "\")) EndIf $hItem = GUICtrlSendMsg($nTreeView, $TVM_GETNEXTITEM, $TVGN_CARET, 0) $szCurrentPath = GetTreePath($nTreeView, $hItem, "\") If BitAnd($nFlag, $TV2HT_ONITEM) Then GUICtrlSetData($nAddressbar, $szCurrentPath) If $szOldPath <> $szCurrentPath Then $szOldPath = $szCurrentPath GUISetState(@SW_LOCK) For $i = $nFirstItem To $nLastItem GUICtrlDelete($i) Next GUISetState(@SW_UNLOCK) ;UpdateCtrl($hGui, $nListView) $nFirstItem = 0 $nLastItem = 0 $nOldItem = 0 GUICtrlSetData($nAddressbar, $szCurrentPath) GUICtrlSetCursor($nListView,1) GUICtrlSetCursor($nTreeView,1) DirToList($szCurrentPath) GUICtrlSetCursor($nListView,2) GUICtrlSetCursor($nTreeView,2) EndIf ElseIf _IsPressed("6B") And ControlGetFocus($hGui) = "SysTreeView321" Then $hItem = GUICtrlSendMsg($nTreeView, $TVM_GETNEXTITEM, $TVGN_CARET, 0) CheckTreeFill($nTreeView, $hItem) EndIf Endif ;insert this at line 212 Switch $nMsg Case $GUI_EVENT_PRIMARYDOWN $pos = GUIGetCursorInfo() If ($pos[4] == $nListView) Then If ($current <> _GUICtrlListViewGetHotItem ($nListView) And _GUICtrlListViewGetHotItem ($nListView) >= 0) Then ;msgbox("", "Hot Item:" , _GUICtrlListViewGetHotItem ($searchlistView)) $current = _GUICtrlListViewGetHotItem ($nListView) ;msgbox(0,"",_GUICtrlListViewGetItemText($searchlistView, $current, 1)) ElseIf ($current = _GUICtrlListViewGetHotItem ($nListView) And _GUICtrlListViewGetHotItem ($nListView) >= 0) Then $s_NewPath=GUICtrlRead($nAddressbar)&_GUICtrlListViewGetItemText ($nListView, $current, 0) if not StringInStr($s_NewPath, ".") then $s_NewPath&="\" Run("explorer.exe /select, " & $s_NewPath , "", @SW_MAXIMIZE) ElseIf (_GUICtrlListViewGetHotItem ($nListView == -1)) Then ;msgbox("", "Hot Item:" , "None") EndIf EndIf Case $GUI_EVENT_CLOSE, $nExitItem ExitLoop Case $nAboutItem Msgbox(64,"About","Demo by Holger; modified display by Randallc") Case $nSplitter $cinfo = GUIGetCursorInfo() If $cinfo[2] = 1 Then $pressed = 1 Case $nViewItem1 To $nViewItem4 GUICtrlSetStyle($nListView, BitOr($LVS_SHOWSELALWAYS, $LVS_SINGLESEL, $nMsg - $nViewItem1)) Case $updown ;MsgBox(0,"","$updown="&$nMsg) $i_UpRead=Number(GUICtrlRead($updown)) $i_OldUpRead=-Number(GUICtrlRead($down)) $nMsg = $updown Re_List($szPath) Case $UpButton ;MsgBox(0,"","$UpButton="&$nMsg) GUICtrlSetData($updown,Number(GUICtrlRead($updown))+1) $i_UpRead=Number(GUICtrlRead($updown)) $i_OldUpRead=-Number(GUICtrlRead($down)) $nMsg = $updown Re_List($szPath) Case $TopButton ;MsgBox(0,"","$TopButton="&$nMsg) GUICtrlSetData($updown,0) GUICtrlSetData($down,0) GUICtrlSetData($Value,0) $i_UpRead=Number(GUICtrlRead($updown)) $i_OldUpRead=-Number(GUICtrlRead($down)) $nMsg = $updown Re_List($szPath) GUICtrlSetData($down,0) GUICtrlSetData($Updown,0) Case $down ; MsgBox(0,"","$down="&$nMsg) $i_DownRead=Number(GUICtrlRead($down)) $i_OldDownRead=-Number(GUICtrlRead($updown)) if $nMsg<> $Bottom then GUICtrlSetData($down,_iif($i_DownRead<$i_OldDownRead,$i_DownRead+2,$i_DownRead-2)) $nMsg = $down Re_List($szPath) Case $DownButton ;MsgBox(0,"","$DownButton="&$nMsg) GUICtrlSetData($down,Number(GUICtrlRead($down))-1) GUICtrlSetData($updown,Number(GUICtrlRead($updown))-1) $i_DownRead=Number(GUICtrlRead($down)) $i_OldDownRead=-Number(GUICtrlRead($updown)) if $nMsg<> $Bottom then GUICtrlSetData($down,_iif($i_DownRead<$i_OldDownRead,$i_DownRead+2,$i_DownRead-2)) $nMsg = $down Re_List($szPath) Case $Bottom ;MsgBox(0,"","$Bottom="&$nMsg) GUICtrlSetData($down,0) GUICtrlSetData($Updown,0) GUICtrlSetData($Value,$TotalRows) $i_DownRead=Number(GUICtrlRead($down)) $i_OldDownRead=-Number(GUICtrlRead($updown)) if $nMsg<> $Bottom then GUICtrlSetData($down,_iif($i_DownRead<$i_OldDownRead,$i_DownRead+2,$i_DownRead-2)) $nMsg = $down Re_List($szPath) GUICtrlSetData($down,0) GUICtrlSetData($Updown,0) Case $Tab1combo1 ,$Value , $updown , $down ;MsgBox(0,"","many="&$nMsg) ;MsgBox(0,"","$Value="&$nMsg) ;MsgBox(0,"","$Tab1combo1="&$nMsg) ;MsgBox(0,"","$down="&$nMsg) ;MsgBox(0,"","$updown="&$nMsg) Re_List($szPath) EndSwitch WEnd Func CheckTreeFill($nCtrl, $hItem) If $hItem > 0 Then $hChild = GUICtrlSendMsg($nTreeView, $TVM_GETNEXTITEM, $TVGN_CHILD, $hItem) If $hChild > 0 Then $szText = GetItemText($nTreeView, $hChild) If $szText == "" Then $szPath = GetTreePath($nTreeView, $hItem, "\") If StringRight($szPath, 1) == "\" Then $szPath = StringTrimRight($szPath, 1) GUICtrlSetCursor($nTreeView, 1) FillTree($szPath, $hItem, $hChild) GUICtrlSetCursor($nTreeView, 2) EndIF EndIf EndIf EndFunc ;==>CheckTreeFill Func FillTreeRoot($arDrives) Local $hSearch, $szFile, $nChildren, $szDriveLabel $hParent = 0 For $i = 1 To $arDrives[0] $nChildren = 0 ;MsgBox(0,"",$arDrives[$i]) $s_Directories=@ScriptDir&"\Dir_"&StringLower(StringLeft($arDrives[$i],1))&".txt" ;FileDelete($s_Directories) filemove(@ScriptDir&"\Dir_*.*",@ScriptDir&"\backup\",9) If GetSubFolder($arDrives[$i]) Then $nChildren = 1 $szType = DriveGetType($arDrives[$i]) Switch $szType Case "Removable" $iImage = 2 $iSelectedImage = 2 Case "Fixed" $iImage = 3 $iSelectedImage = 3 Case "Network" $iImage = 4 $iSelectedImage = 4 Case "CDROM" $iImage = 5 $iSelectedImage = 5 Case Else $iImage = 0 $iSelectedImage = 0 EndSwitch If $szType = "Removable" Then $szText = "Removable" ElseIf $szType = "Network" Then $szLabel = DriveMapGet($arDrives[$i]) $nPos = StringInStr($szLabel, "\", 0, -1) $szText = StringRight($szLabel, StringLen($szLabel) - $nPos) & " on """ & StringTrimLeft(StringLeft($szLabel, $nPos - 1), 2) & """" Else $szText = DriveGetLabel($arDrives[$i]) EndIf $szDriveLabel = $szText & " (" & StringUpper($arDrives[$i]) & ")" $hItem = InsertItem($szDriveLabel, $hParent, $hCurItem, $nChildren, $iImage, $iSelectedImage) If $nChildren = 1 Then InsertDummyItem($nTreeView, $hItem) Next $hItem = GUICtrlSendMsg($nTreeView, $TVM_GETNEXTITEM, $TV2GN_ROOT, 0) GUICtrlSendMsg($nTreeView, $TVM_SELECTITEM, $TVGN_CARET, $hItem) EndFunc ;==>FillTreeRoot Func GetSubFolder($szPath) Local $hSearch, $szFile, $nChildren = 0 $hSearch = FileFindFirstFile($szPath & "\*.*") If $hSearch = -1 Then Return While 1 $szFile = FileFindNextFile($hSearch) If @error Then ExitLoop If StringInStr(FileGetAttrib($szPath & "\" & $szFile), "D") Then $nChildren = 1 ExitLoop EndIf WEnd FileClose($hSearch) Return $nChildren EndFunc ;==>GetSubFolder Func FillTree($szPath, $hParent = 0, $hDelete = 0) Local $hSearch, $szFile, $nChildren,$s_DirExist,$s_Directories If $hDelete > 0 Then GUICtrlSendMsg($nTreeView, $TVM_DELETEITEM, 0, $hDelete) SetItemChildren($hParent) EndIf local $s_AnswerFile=@ScriptDir & '\au3.txt',$s_AnswerFile2=@ScriptDir & '\au32.txt' $s_Switches1=" /ad /b " $s_Switches2=" /ad /b/s " $szPath=FileGetShortName($szPath) If (StringRight($szPath, 1) == "\") Then $szPath = StringTrimRight($szPath, 1) if not (StringRight($szPath, 1) == ":") Then ;$nPos = StringInStr($szPath, "\", 0, 2) ;$szPathBase=StringLeft($szPath,$nPos-1) ;if (StringRight($szPathBase, 1) == ":") or $nPos=0 Then $szPathBase=$szPath $szPathBase=$szPath $szPathBaseName=StringReplace(StringReplace(StringLower($szPathBase),":","_"),"\","_") $s_Directories=@ScriptDir&"\Dir_"&$szPathBaseName&".txt" if not FileExists($s_Directories) then $s_DirExist=0 Else $s_DirExist=1 EndIf EndIf $s_Command= ' dir ' & $szPath & '\* '&$s_Switches1 & ' > "' & $s_AnswerFile&'"' ;if not $s_DirExist=1 then $s_Command&= ' |dir ' & $szPath & '\* '&$s_Switches2 & ' > "' & $s_Directories&'"' RunWait(@ComSpec & ' /c ' & $s_Command, '', @SW_HIDE) if not StringRight($szPath, 1) = ":" Then ;MsgBox(0,"","StringRight($szPath, 1)="&StringRight($szPath, 1)) ;MsgBox(0,"","so $s_Directories="&$s_Directories) $s_DirString=FileRead($s_Directories,FileGetSize($s_Directories)) $s_DirExist=1 EndIf $hSearch = FileOpen($s_AnswerFile,0) While 1 $szFile=FileReadLine($hSearch) If @error = -1 Then ExitLoop $nChildren = 0 if not StringRight($szPath, 1) = ":" and $s_DirExist=1 Then ;MsgBox(0,"","StringRight($szPath, 1)="&StringRight($szPath, 1)) ;MsgBox(0,"","so $s_Directories="&$s_Directories) if StringInStr($s_DirString,StringReplace(StringReplace($szPath & "\" & $szFile,"\","_"),":","_")) Then $nChildren = 1 Else If GetSubFolder($szPath & "\" & $szFile) Then $nChildren = 1 EndIf $hItem = InsertItem($szFile, $hParent, $hCurItem, $nChildren) If $nChildren = 1 Then InsertDummyItem($nTreeView, $hItem) $nCtrls = $nCtrls + 1 WEnd FileClose($hSearch) EndFunc ;==>FillTree Func FillTreeOld($szPath, $hParent = 0, $hDelete = 0) Local $hSearch, $szFile, $nChildren,$s_DirExist,$s_Directories If $hDelete > 0 Then GUICtrlSendMsg($nTreeView, $TVM_DELETEITEM, 0, $hDelete) SetItemChildren($hParent) EndIf local $s_AnswerFile=@ScriptDir & '\au3.txt',$s_AnswerFile2=@ScriptDir & '\au32.txt' $s_Switches1=" /ad /b " $s_Switches2=" /ad /b/s " $szPath=FileGetShortName($szPath) If (StringRight($szPath, 1) == "\") Then $szPath = StringTrimRight($szPath, 1) if not (StringRight($szPath, 1) == ":") Then $nPos = StringInStr($szPath, "\", 0, 2) $szPathBase=StringLeft($szPath,$nPos-1) if (StringRight($szPathBase, 1) == ":") or $nPos=0 Then $szPathBase=$szPath $szPathBaseName=StringReplace(StringReplace(StringLower($szPathBase),":","_"),"\","_") $s_Directories=@ScriptDir&"\Dir_"&$szPathBaseName&".txt" if not FileExists($s_Directories) then $s_DirExist=0 Else $s_DirExist=1 EndIf EndIf $s_Command= ' dir ' & $szPath & '\* '&$s_Switches1 & ' > "' & $s_AnswerFile&'"' if not $s_DirExist=1 then $s_Command&= ' |dir ' & $szPath & '\* '&$s_Switches2 & ' > "' & $s_Directories&'"' RunWait(@ComSpec & ' /c ' & $s_Command, '', @SW_HIDE) if not StringRight($szPath, 1) = ":" Then ;MsgBox(0,"","StringRight($szPath, 1)="&StringRight($szPath, 1)) ;MsgBox(0,"","so $s_Directories="&$s_Directories) $s_DirString=FileRead($s_Directories,FileGetSize($s_Directories)) $s_DirExist=1 EndIf $hSearch = FileOpen($s_AnswerFile,0) While 1 $szFile=FileReadLine($hSearch) If @error = -1 Then ExitLoop $nChildren = 0 if not StringRight($szPath, 1) = ":" and $s_DirExist=1 Then ;MsgBox(0,"","StringRight($szPath, 1)="&StringRight($szPath, 1)) ;MsgBox(0,"","so $s_Directories="&$s_Directories) if StringInStr($s_DirString,StringReplace(StringReplace($szPath & "\" & $szFile,"\","_"),":","_")) Then $nChildren = 1 Else If GetSubFolder($szPath & "\" & $szFile) Then $nChildren = 1 EndIf $hItem = InsertItem($szFile, $hParent, $hCurItem, $nChildren) If $nChildren = 1 Then InsertDummyItem($nTreeView, $hItem) $nCtrls = $nCtrls + 1 WEnd FileClose($hSearch) EndFunc ;==>FillTree Func InsertItem($szText, $hParent, $hInsertAfter, $nChildren, $iImage = 0, $iSelectedImage = 1) $pszText = DllStructCreate("char[260]") DllStructSetData($pszText, 1, $szText) $tvItem = TVITEM() $tvInsertStruct = DllStructCreate("int;int;int[10]") If $hCurItem = 0 Then $hInsertAfter = $TV2I_FIRST Else $hInsertAfter = $hCurItem EndIf DllStructSetData($tvInsertStruct, 1, $hParent) DllStructSetData($tvInsertStruct, 2, $hInsertAfter) DllStructSetData($tvInsertStruct, 3, $tvItem) $hItem = GUICtrlSendMsg($nTreeView, $TV2M_INSERTITEM, 0, DllStructGetPtr($tvInsertStruct)) If $hItem > 0 Then $hCurItem = $hItem DllStructSetData($tvItem, 1, BitOr($TVIF_TEXT, $TV2IF_IMAGE, $TV2IF_SELECTEDIMAGE)) DllStructSetData($tvItem, 2, $hItem) DllStructSetData($tvItem, 5, DllStructGetPtr($pszText)) DllStructSetData($tvItem, 7, $iImage) DllStructSetData($tvItem, 8, $iSelectedImage) GUICtrlSendMsg($nTreeView, $TV2M_SETITEM, 0, DllStructGetPtr($tvItem)) EndIf ;;DllStructDelete($tvInsertStruct) ;;DllStructDelete($tvItem) ;;DllStructDelete($pszText) Return $hItem EndFunc ;==>InsertItem Func InsertDummyItem($nCtrl, $hItem) InsertItem("", $hItem, $hCurItem, 0) EndFunc ;==>InsertDummyItem Func TV_Hittest($nCtrl, ByRef $nFlag ) $hItem = 0 $point = DllStructCreate("int;int") DllCall("user32.dll", "int", "GetCursorPos", "ptr", DllStructGetPtr($point)) $hWnd = ControlGetHandle("", "", $nCtrl) DllCall("user32.dll", "int", "ScreenToClient", "hwnd", $hWnd, "ptr", DllStructGetPtr($point)) $tvHit = DllStructCreate("int[2];uint;int") DllStructSetData($tvHit, 1, DllStructGetData($point, 1), 1) DllStructSetData($tvHit, 1, DllStructGetData($point, 2), 2) If GUICtrlSendMsg($nCtrl, $TV2M_HITTEST, 0, DllStructGetPtr($tvHit)) Then $nFlag = DllStructGetData($tvHit, 2) $hItem = DllStructGetData($tvHit, 3) EndIf ;DllStructDelete($tvHit) ;DllStructDelete($point) Return $hItem EndFunc ;==>TV_Hittest Func ItemHasChildren($nCtrl, $hItem) $nChildren = 0 If GUICtrlSendMsg($nCtrl, $TVM_GETNEXTITEM, $TVGN_CHILD, $hItem) > 0 Then $nChildren = 1 Return $nChildren EndFunc ;==>ItemHasChildren Func ExpandTree($nCtrl, $hItem) $result = GUICtrlSendMsg($nCtrl, $TVM_EXPAND, 0x0002, $hItem) EndFunc ;==>ExpandTree Func GetTreePath($nCtrl, $hItem, $szSepChar) Local $szPath = "", $hParent, $hWnd, $szText While $hItem > 0 $szText = GetItemText($nCtrl, $hItem) $hParent = GUICtrlSendMsg($nCtrl, $TVM_GETNEXTITEM, $TVGN_PARENT, $hItem) If $hParent = 0 Then $szText = StringRight(StringTrimRight($szText, 1), 2) $szPath = $szText & $szSepChar & $szPath $hItem = $hParent WEnd Return $szPath EndFunc ;==>GetTreePath Func GetItemText($nCtrl, $hItem) Local $szText = "", $pszText, $tvItem $pszText = DllStructCreate("char[260]") $tvItem = TVITEM() DllStructSetData($tvItem, 1, $TVIF_TEXT) DllStructSetData($tvItem, 2, $hItem) DllStructSetData($tvItem, 5, DllStructGetPtr($pszText)) DllStructSetData($tvItem, 6, 260) GUICtrlSendMsg($nTreeView, $TVM_GETITEM, 0, DllStructGetPtr($tvItem)) $szText = DllStructGetData($pszText, 1) ;DllStructDelete($tvItem) ;DllStructDelete($pszText) Return $szText EndFunc ;==>GetItemText Func GetItemState($nCtrl, $hItem) Local $nState = 0, $tvItem $tvItem = TVITEM() DllStructSetData($tvItem, 1, $TVIF_STATE) DllStructSetData($tvItem, 2, $hItem) DllStructSetData($tvItem, 4, $TVIS_STATEIMAGEMASK) GUICtrlSendMsg($nTreeView, $TVM_GETITEM, 0, DllStructGetPtr($tvItem)) $nState = DllStructGetData($tvItem, 3) ;DllStructDelete($tvItem) Return $nState EndFunc ;==>GetItemState Func TVITEM() Return DllStructCreate("uint;int;uint;uint;ptr;int;int;int;int;int") EndFunc ;==>TVITEM Func UpdateWindow($nCtrl) $hWnd = ControlGetHandle("", "", $nCtrl) $rect = DllStructCreate("int;int;int;int") DllCall("user32.dll", "int", "InvalidateRect", "hwnd", $hWnd, "int", 0, "int", 0) EndFunc ;==>UpdateWindow Func SetItemChildren($hItem, $nFlag = 1) Local $tvItem $tvItem = TVITEM() DllStructSetData($tvItem, 1, $TV2IF_CHILDREN) DllStructSetData($tvItem, 2, $hItem) DllStructSetData($tvItem, 9, $nFlag) GUICtrlSendMsg($nTreeView, $TV2M_SETITEM, 0, DllStructGetPtr($tvItem)) ;DllStructDelete ($tvItem) EndFunc ;==>SetItemChildren Func FileGetIconCount($szFile) Dim $nCount = 0; ;redim $szFile $LPCTSTR = DllStructCreate("char[260]") DllStructSetData($LPCTSTR, 1, $szFile) $nCount = DllCall("shell32.dll", "int", "ExtractIconEx", "ptr", DllStructGetPtr($LPCTSTR), "int", -1, "int", 0, "int", 0, "int", 0) $nCount = $nCount[0] ;DllStructDelete($LPCTSTR) Return $nCount EndFunc ;==>FileGetIconCount Func FileGetType($szFile) Dim $szRegDefault = "", $szRegType = "" ;redim $szFile $szExt = StringRight($szFile,4) $szRegDefault = RegRead("HKCR\" & $szExt,"") If $szRegDefault <> "" Then $szRegType = RegRead("HKCR\" & $szRegDefault,"") If $szRegType = "" Then $szRegType = $szExt & "-File" Return $szRegType EndFunc ;==>FileGetType Func FileGetIcon(ByRef $szIconFile, ByRef $nIcon, $szFile) Dim $szRegDefault = "", $szDefIcon = "" ;redim $szFile ;$nIcon = 0 $szExt = StringRight($szFile,4) $szRegDefault = RegRead("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\" & $szExt,"ProgID") If $szRegDefault = "" Then $szRegDefault = RegRead("HKCR\" & $szExt,"") If $szRegDefault <> "" Then $szDefIcon = RegRead("HKCR\" & $szRegDefault & "\DefaultIcon","") If $szDefIcon = "" Then $szIconFile = "shell32.dll" ElseIf $szDefIcon <> "%1" Then $arSplit = StringSplit($szDefIcon,",") If IsArray($arSplit) Then $szIconFile = $arSplit[1] If $arSplit[0] > 1 Then $nIcon = $arSplit[2] Else Return 0 EndIf EndIf Return 1 EndFunc ;==>FileGetIcon Func GUICtrlListViewSetColumnFormat($hListView, $nCol, $nFormat) $hListViewHeader = GUICtrlSendMsg($hListView, $LVM_GETHEADER, 0, 0) $LVCOLUMN = DllStructCreate("uint;int;int;ptr;int;int;int;int") DllStructSetData($LVCOLUMN, 1, $LVCF_FMT) DllStructSetData($LVCOLUMN, 2, $nFormat) GUICtrlSendMsg($hListView, $LVM_SETCOLUMN, $nCol, DllStructGetPtr($LVCOLUMN)) ;;DllStructDelete($LVCOLUMN) EndFunc ;==>GUICtrlListViewSetColumnFormat Func UpdateCtrl($hWnd, $nCtrl) $hCtrl = ControlGetHandle($hWnd, "", $nCtrl) $point = DllStructCreate("int;int") $rect = DllStructCreate("int;int;int;int") DllCall("user32.dll", "int", "GetWindowRect", "hwnd", $hCtrl, "ptr", DllStructGetPtr($rect)) DllStructSetData($point, 1, DllStructGetData($rect, 1)) DllStructSetData($point, 2, DllStructGetData($rect, 2)) DllCall("user32.dll", "int", "ScreenToClient", "hwnd", $hCtrl, "ptr", DllStructGetPtr($point)) DllStructSetData($rect, 1, DllStructGetData($point, 1)) DllStructSetData($rect, 2, DllStructGetData($point, 2)) DllStructSetData($point, 1, DllStructGetData($rect, 3)) DllStructSetData($point, 2, DllStructGetData($rect, 4)) DllCall("user32.dll", "int", "ScreenToClient", "hwnd", $hCtrl, "ptr", DllStructGetPtr($point)) DllStructSetData($rect, 3, DllStructGetData($point, 1)) DllStructSetData($rect, 4, DllStructGetData($point, 2)) DllCall("user32.dll", "int", "InvalidateRect", "hwnd", $hWnd, "ptr", DllStructGetPtr($rect), "int", 1); ;DllStructDelete($point) ;DllStructDelete($rect) EndFunc ;==>UpdateCtrl Func DirToList($szPath) $s_MsgValue=GUICtrlRead($Value) local $s_AnswerFile=@ScriptDir & '\au3.txt',$s_AnswerFile2=@ScriptDir & '\au32.txt' $s_Switches1=" /ad /b " $s_Switches2=" /a-d /b " $szPath=FileGetShortName($szPath) If StringRight($szPath, 1) = "\" Then $szPath = StringTrimRight($szPath, 1) $s_Command= ' dir ' & $szPath & '\* '&$s_Switches1 & ' > "' & $s_AnswerFile&'"'& _ '|dir ' & $szPath & '\* '&$s_Switches2 & ' > "' & $s_AnswerFile2 &'"' RunWait(@ComSpec & ' /c ' & $s_Command, '', @SW_HIDE) $s_StringAns=FileRead($s_AnswerFile,FileGetSize($s_AnswerFile))&FileRead($s_AnswerFile2,FileGetSize($s_AnswerFile2)) $file = FileOpen($s_AnswerFile, 2) FileWrite($file,$s_StringAns) FileClose($file) $sTXTLOGFile2="Table.txt" Dim $hSearch, $szFile, $szDate, $szType, $nItem If StringRight($szPath, 1) = "\" Then $szPath = StringTrimRight($szPath, 1) $hSearch = FileOpen($s_AnswerFile,0) $nItem = -1 $i_numItems=0 ;====================================================CountRows $TotalRows=_FileCountLines( $s_AnswerFile ) $s_IntervalString="" $i_IntervalCombo=$TotalRows/20 for $i=0 to 20 $s_IntervalString&="|"&int($i*$i_IntervalCombo) Next ;GUICtrlSetData($Value, $s_IntervalString, $TotalRows-(GUICtrlRead($Value))-1) ;====================================================Rows ;if $nMsg <> $Value and $nMsg <> $updown and $nMsg <> $down and $nMsg <> $Tab1combo1 then GUICtrlSetData($Value, $s_IntervalString, $TotalRows-(GUICtrlRead($Value))-1) if $nMsg <> $Value and $nMsg <> $updown and $nMsg <> $Tab1combo1 and $nmsg<> $down then GUICtrlSetData($Value, $s_IntervalString, GUICtrlRead($Value)-1) if $nMsg =$Value then GUICtrlSetData($down,0) GUICtrlSetData($updown,0) EndIf if $nMsg = $updown then GUICtrlSetData($down,-GUICtrlRead($updown)) if $nMsg = $down then GUICtrlSetData($updown,-GUICtrlRead($down) ) $i_FromUpDownT=int(number(GUICtrlRead($updown))*number(GUICtrlRead($Tab1combo1))) $i_FromDownT=int(number(GUICtrlRead($down))*number(GUICtrlRead($Tab1combo1))) $i_NewStart=number(GUICtrlRead($Value))-_iif(number(GUICtrlRead($Value))=0,0,1)-$i_FromUpDownT if $TotalRows-$i_NewStart<number(GUICtrlRead($Tab1combo1)) then $i_NewStart=$TotalRows-number(GUICtrlRead($Tab1combo1)) ;====================================================Cols $i_TotalNumRowsToShow=GUICtrlRead($Tab1combo1) $i_FirstItem=$i_NewStart $i_ItemsNumber=$i_NewStart _LockAndWait2() While $i_numItems<$i_TotalNumRowsToShow+1 $i_numItems+=1 $szFile=FileReadLine($hSearch) If @error = -1 Then ExitLoop $nIcon = 0 $szIconFile = $szPath & "\" & $szFile FileGetIcon($szIconFile, $nIcon, $szFile) $IsDir = StringInStr(FileGetAttrib($szPath & "\" & $szFile),"D") $szSize = "" If $IsDir Then $szType = $szDirType Else $szSize = Round(FileGetSize($szPath & "\" & $szFile) / 1000) & " KB" $szType = FileGetType($szFile) EndIf $arDate = FileGetTime($szPath &"\" & $szFile) If IsArray($arDate) Then $szDate = $arDate[2] & "." & $arDate[1] & "." & $arDate[0] & " " & $arDate[3] & ":" & $arDate[4] $nItem = GUICtrlCreateListViewItem($szFile & "|" & $szSize & "|" & $szType & "|" & $szDate& "|" & $i_numItems, $nListView) If $IsDir Then GUICtrlSetImage(-1,$szIconFile, 3) Else GUICtrlSetImage(-1,$szIconFile,$nIcon) EndIf If $nFirstItem = 0 Then $nFirstItem = $nItem WEnd _ResetLockWait2() $nLastItem = $nItem If $nLastItem > 0 Then GUICtrlSetData($statusbarobj, $nLastItem - $nFirstItem & " Objects") Else GUICtrlSetData($statusbarobj, "Ready") EndIf FileClose($hSearch) $s_MsgValue=GUICtrlRead($Value) ;MsgBox(0,"","$s_MsgValue="&$s_MsgValue) GUICtrlSetData($Value, 0) EndFunc ;==>DirToList Func Re_List($szPath) local $s_AnswerFile=@ScriptDir & '\au3.txt' Dim $hSearch, $szFile, $szDate, $szType, $nItem If StringRight($szPath, 1) == "\" Then $szPath = StringTrimRight($szPath, 1) $hSearch = FileOpen($s_AnswerFile,0) $nItem = -1 $i_numItems=0 ;====================================================CountRows $TotalRows=_FileCountLines( $s_AnswerFile ) $s_IntervalString="" $i_IntervalCombo=$TotalRows/20 for $i=0 to 20 $s_IntervalString&="|"&int($i*$i_IntervalCombo) Next ;====================================================Rows if $nMsg <> $Value and $nMsg <> $updown and $nMsg <> $Tab1combo1 and $nMsg <> $down then GUICtrlSetData($Value, $s_IntervalString, $TotalRows-(GUICtrlRead($Value))-1) if $nMsg =$Value then GUICtrlSetData($down,0) GUICtrlSetData($updown,0) EndIf if $nMsg = $updown then GUICtrlSetData($down,-GUICtrlRead($updown)) if $nMsg = $down then GUICtrlSetData($updown,GUICtrlRead($updown)-1 ) $i_FromUpDownT=int(number(GUICtrlRead($updown))*number(GUICtrlRead($Tab1combo1))) $i_FromDownT=int(number(GUICtrlRead($down))*number(GUICtrlRead($Tab1combo1))) $i_NewStart=number(GUICtrlRead($Value))-_iif(number(GUICtrlRead($Value))=0,0,1)-$i_FromUpDownT if ($TotalRows-$i_NewStart)<number(GUICtrlRead($Tab1combo1)) then $i_NewStart=$TotalRows-number(GUICtrlRead($Tab1combo1)) if $i_NewStart<0 then $i_NewStart=0 ;====================================================Cols $i_TotalNumRowsToShow=GUICtrlRead($Tab1combo1) $i_FirstItem=$i_NewStart $i_ItemsNumber=$i_NewStart _LockAndWait2() _GUICtrlListViewDeleteAllItems ($nListView) While $i_numItems<$i_TotalNumRowsToShow+1 $i_numItems+=1 $i_ItemsNumber+=1 $szFile=FileReadLine($hSearch,$i_ItemsNumber) If @error = -1 Then ExitLoop $nIcon = 0 $szIconFile = $szPath & "\" & $szFile FileGetIcon($szIconFile, $nIcon, $szFile) $IsDir = StringInStr(FileGetAttrib($szPath & "\" & $szFile),"D") $szSize = "" If $IsDir Then $szType = $szDirType Else $szSize = Round(FileGetSize($szPath & "\" & $szFile) / 1000) & " KB" $szType = FileGetType($szFile) EndIf $arDate = FileGetTime($szPath &"\" & $szFile) If IsArray($arDate) Then $szDate = $arDate[2] & "." & $arDate[1] & "." & $arDate[0] & " " & $arDate[3] & ":" & $arDate[4] $nItem = GUICtrlCreateListViewItem($szFile & "|" & $szSize & "|" & $szType & "|" & $szDate& "|" &$i_ItemsNumber , $nListView) If $IsDir Then GUICtrlSetImage(-1,$szIconFile, 3) Else GUICtrlSetImage(-1,$szIconFile,$nIcon) EndIf If $nFirstItem = 0 Then $nFirstItem = $nItem WEnd _ResetLockWait2() $nLastItem = $nItem If $nLastItem > 0 Then GUICtrlSetData($statusbarobj, $nLastItem - $nFirstItem & " Objects") Else GUICtrlSetData($statusbarobj, "Ready") EndIf FileClose($hSearch) ;MsgBox(0,"","Done once at least!") EndFunc ;==>Re_List Func _LockAndWait2() Local $Cursor_WAIT GUISetState(@SW_LOCK) GUISetCursor($Cursor_WAIT, 1) EndFunc ;==>_LockAndWait2 Func _ResetLockWait2() Local $Cursor_ARROW GUISetState(@SW_UNLOCK) GUISetCursor($Cursor_ARROW, 1) EndFunc ;==>_ResetLockWait2 FixJaw.comTriad-Art.com Link to comment Share on other sites More sharing options...
Glyph Posted December 12, 2007 Author Share Posted December 12, 2007 Awesome! that's exactly what I was looking for! -off to convert now!- 38kb LOL, better than nothing tolle indicium Link to comment Share on other sites More sharing options...
mikiutama Posted December 12, 2007 Share Posted December 12, 2007 (edited) well... here is mine... it goes on to all subdirs... you may need to modify to suit yours... ElseIf $Attrib = "D" Then $sized = DirGetSize($gaDropFiles[$i], 1) If $sized[1] > 4000 Then WinSetOnTop($version, "", 0) MsgBox(0, $version, "Found a total of " & $sized[1] & " files inside " & $gaDropFiles[$i] & @LF & "This version only supports up to 4000 files and folders...") Else all($gaDropFiles[$i]) EndIf . . . Func all($k) Dim $folders = _FileListToArray($k, "*.*", 2) If Not @error Then If $folders[0] <> 0 Then For $i = 1 To $folders[0] all($k & "\" & $folders[$i]) Next EndIf EndIf Dim $files = _FileListToArray($k, "*.*", 1) If Not @error Then If $files[0] <> 0 Then For $j = 1 To $files[0] $dir = $k $print = $dir & "\" & $files[$j] If FileExists($print) Then GUICtrlCreateListViewItem($print & "|" & Round(FileGetSize($print) / 1048576, 4), $inp1) GUICtrlSetData($Status, "Files to be deleted: " & _GUICtrlListViewGetItemCount($inp1)) EndIf Next EndIf EndIf EndFunc ;==>all Edited December 12, 2007 by mikiutama Link to comment Share on other sites More sharing options...
Glyph Posted December 12, 2007 Author Share Posted December 12, 2007 OHH, you are awesome! thank you!! tolle indicium Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now