Hallo,
wie kann ich mit Autoit sowas machen:
[Blockierte Grafik: http://download.lima-city.de/deepred/54634536453645.jpg]
Hallo,
wie kann ich mit Autoit sowas machen:
[Blockierte Grafik: http://download.lima-city.de/deepred/54634536453645.jpg]
Ich glaube das ist gar nicht so einfach. Wenn sich die Ordnerstruktur ändert (neuer Ordner) wird es schwierig, den TreeView zu aktualisieren
Das wurde schon ofter probiert, kA mit welchem Erfolg: [ offen ] Explorer Tree View erstellen
http://www.autoitscript.com/forum/index.php?showtopic=7109&hl=Autoit3Explorer
es soll ja nicht aktualisiert werden.
Hm. Du könntest den Inhalt eines Startordners, zB C:\, in ein TreeView packen.
Den einzelnen Items gibst du Dummy-SubItems.
Auf den Klick auf ein Item setzt du dann eine Funktion, die den gewählten Ordner
durchsucht, den Dummy löscht und die gefundenen Dateien als SubItems anzeigt &
ihnen ebenfalls Dummy-SubItems gibt.
Ist vll etwas kompliziert, aber möglich wärs doch ?
Ansonsten hab ich noch eine stark vereinfachte Version anzubieten, allerdings mit
ListView statt TreeView.
#include <GUIConstantsEx.au3>
#include <GuiListView.au3>
#include <ListViewConstants.au3>
Opt( 'GUIOnEventMode', 1 )
Global $globe_folder = ''
Global $list_items
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("OrdnerStrukturen", 703, 376, 193, 115)
GUISetOnEvent( $GUI_EVENT_CLOSE, '_exit' )
$list = GUICtrlCreateListView( '', 8, 40, 677, 313, BitOR($LVS_LIST,$LVS_SINGLESEL,$LVS_SHOWSELALWAYS))
$Input1 = GUICtrlCreateInput(@ScriptDir & '\', 8, 8, 500, 21)
$Menu = GUICtrlCreateContextMenu( $list )
$MenuItemOpen = GUICtrlCreateMenuItem( 'Open', $list )
GUICtrlSetOnEvent( -1, '_menu_open' )
$Button1 = GUICtrlCreateButton("up", 608, 8, 78, 25, 0)
GUICtrlSetOnEvent( -1, '_aufwaerts' )
$button2 = GUICtrlCreateButton('ok', 520, 8, 78, 25, 0 )
GUICtrlSetOnEvent( -1, '_reList' )
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
_reList()
[/autoit] [autoit][/autoit] [autoit]While 1
Sleep( 100 )
WEnd
Func _aufwaerts()
If StringInStr( $globe_folder, '\', 0, 1 ) = StringInStr( $globe_folder, '\', 0, -1 ) Then Return
$globe_folder = StringTrimRight( $globe_folder, StringLen( $globe_folder ) - StringInStr( $globe_folder,'\', 0, -2 ) )
GUICtrlSetData( $Input1, $globe_folder )
_reList()
EndFunc
Func _menu_open()
$sel = _GUICtrlListView_GetSelectedIndices( $list )
If $sel = '' Then Return
$cur_sel = GUICtrlRead( $list_items[$sel] )
If FileOpen( $globe_folder & $cur_sel, 0 ) <> -1 Then Return
If (Not FileExists( $globe_folder & $cur_sel )) Then Return
If StringRight( $cur_sel, 1 ) <> '\' Then $cur_sel &= '\'
GUICtrlSetData( $Input1, $globe_folder & $cur_sel )
_reList()
EndFunc
Func _reList()
$folder = GUICtrlRead( $Input1 )
If StringRight( $folder, 1 ) <> '\' Then $folder &= '\'
If (FileOpen( $folder, 0 ) = -1) And (Not FileExists( $folder ) ) Then Return
If FileOpen( $folder, 0 ) <> -1 Then Return
GUICtrlSetData( $Input1, $folder )
$globe_folder = $folder
If StringRight( $globe_folder, 1 ) <> '\' Then
Global $globe_folder = $globe_folder & '\'
EndIf
_GUICtrlListView_DeleteAllItems( $list )
$dir = __files( $folder )
Dim $list_items[UBound( $dir )-1]
For $i = 0 To UBound( $dir ) -2
$list_items[$i] = GUICtrlCreateListViewItem( $dir[$i+1], $list )
$ch_open = FileOpen( $globe_folder & $dir[$i+1], 0 )
If $ch_open <> -1 Then
FileClose( $ch_open )
Switch StringRight( $dir[$i+1], 4 )
Case '.zip','.rar'
If GUICtrlSetImage( $list_items[$i], @ProgramFilesDir & '\WinRar\Winrar.exe', 1 ) = 0 Then GUICtrlSetImage( $list_items[$i], 'shell32.dll', 1 )
Case '.lnk'
GUICtrlSetImage( $list_items[$i], 'shell32.dll', 30 )
Case '.ini'
GUICtrlSetImage( $list_items[$i], 'shell32.dll', 151 )
Case '.htm', 'html', '.php'
GUICtrlSetImage( $list_items[$i], @ProgramFilesDir & '\Internet Explorer\iexplore.exe', 1 )
Case '.bat'
GUICtrlSetImage( $list_items[$i], 'shell32.dll', 153 )
Case '.wma', '.mp3', '.mp2', '.mov'
GUICtrlSetImage( $list_items[$i], 'wmploc.dll', 732 )
Case '.wmv', '.wma', '.mpg'
GUICtrlSetImage( $list_items[$i], 'wmploc.dll', 736 )
Case '.txt', '.log'
GUICtrlSetImage( $list_items[$i], 'shell32.dll', 152 )
Case '.exe','.ico'
$ico = GUICtrlSetImage( $list_items[$i], $globe_folder & $dir[$i+1], 0 )
If $ico = 0 Then
GUICtrlSetImage( $list_items[$i], 'shell32.dll', 278 )
EndIf
Case '.dll'
GUICtrlSetImage( $list_items[$i], 'shell32.dll', 154 )
Case '.jpg','jpeg','.gif','.bmp'
GUICtrlSetImage( $list_items[$i], 'shimgvw.dll', 3 )
Case Else
GUICtrlSetImage( $list_items[$i], 'shell32.dll', 1 );Unbekannter Typ
EndSwitch
Else
GUICtrlSetImage( $list_items[$i], 'shell32.dll', 4 )
EndIf
Next
EndFunc
Func __files( $folder )
FileChangeDir( $folder )
Local $aret[1], $_i = 1
$aret[0] = FileFindFirstFile( '*.*' )
While 1
$zw = FileFindNextFile( $aret[0] )
If @error Then ExitLoop
$_i += 1
ReDim $aret[$_i]
$aret[$_i-1] = $zw
WEnd
Return $aret
EndFunc
Func _exit()
Exit
EndFunc
Vll kannst du damit ja etwas anfangen,
wenn ich daran denke versuch ich mich vll mal am TreeView
mfg limette
#include <File.au3>
#include <GuiListView.au3>
#include <GuiTreeView.au3>
#include <Misc.au3>
#include <ComboConstants.au3>
#include <GUIConstantsEx.au3>
#include <ListViewConstants.au3>
#include <StaticConstants.au3>
#include <TreeViewConstants.au3>
#include <WindowsConstants.au3>
Opt("GUIDataSeparatorChar","\")
WinActivate('Ordneroptionen')
$text = ControlGetText('Ordneroptionen', '', 30120)
$htree = ControlGetHandle('Ordneroptionen', '', 30120)
If IsHWnd($htree) Then ConsoleWrite("Yeah" & @CRLF)
;ConsoleWrite(_GUICtrlTreeView_GetTree ($htree, 1) & @CRLF)
ConsoleWrite($text & @CRLF)
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit];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 !!!
;
; ----------------------------------------------------------------------------
#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", ; 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)
GUICtrlListView_SetColumnFormat($nListView, 1, $LVCFMT_RIGHT)
GUICtrlListView_SetColumnFormat($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)
_GUICtrlListView_SetColumnWidth ($nListView, 0, 180) ;Set Column with
_GUICtrlListView_SetColumnWidth ($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 $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
Switch $nMsg
Case $GUI_EVENT_PRIMARYDOWN
$pos = GUIGetCursorInfo()
If ($pos[4] == $nListView) Then
If ($current <> _GUICtrlListView_GetHotItem ($nListView) And _GUICtrlListView_GetHotItem ($nListView) >= 0) Then
;msgbox("", "Hot Item:" , _GUICtrlListView_GetHotItem ($searchlistView))
$current = _GUICtrlListView_GetHotItem ($nListView)
;msgbox(0,"",_GUICtrlListView_GetItemText($searchlistView, $current, 1))
ElseIf ($current = _GUICtrlListView_GetHotItem ($nListView) And _GUICtrlListView_GetHotItem ($nListView) >= 0) Then
$s_NewPath=GUICtrlRead($nAddressbar)&_GUICtrlListView_GetItemText ($nListView, $current, 0)
if not StringInStr($s_NewPath, ".") then $s_NewPath&="\"
Run("explorer.exe /select, " & $s_NewPath , "", @SW_MAXIMIZE)
ElseIf (_GUICtrlListView_GetHotItem ($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 GUICtrlListView_SetColumnFormat($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 ;==>GUICtrlListView_SetColumnFormat
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()
_GUICtrlListView_DeleteAllItems ($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