Syed23 Posted October 4, 2012 Share Posted October 4, 2012 (edited) Hi Everyone, Hope everyone is alright! I am right now working on the tool project which will be very helpful to my company. Basically how the tool will look like is on the right hand side of the tool the C: drive and it's base folder will be listed in treeview with empty checkboxes. what i am trying to do is whenever i expand the any folder in the treeview i am trying to find the treepath, so that i can scan the path folder and i can add the files and folders available on that particular hirarchy. But i am not sure which of my logic goes wrong i am not able to find that currently expanded treeview path and it always returns me the topmost node name. i am just learning to handle the treeview which is really strange for me and lot of thinks to be learned. so i thought if i post my code some one can help me where i am doing wrong and also can suggest how can i do.. Please forgive me if i ask something wrong. expandcollapse popup;#RequireAdmin #Region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_Icon=database-next.ico #AutoIt3Wrapper_Outfile=DCU.exe #AutoIt3Wrapper_Res_Comment=Data Restoration Utility #AutoIt3Wrapper_Res_Description=Data Restoration Utility #AutoIt3Wrapper_Res_Fileversion=1.0.0.4 #AutoIt3Wrapper_Res_Fileversion_AutoIncrement=p #AutoIt3Wrapper_Res_LegalCopyright=Site Support Team #AutoIt3Wrapper_Res_requestedExecutionLevel=asInvoker ://////=__= #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <GuiTreeView.au3> #include <TreeViewConstants.au3> #include "_XMLDomWrapper.au3" #include "GIFAnimation.au3" ; #include "GDIpProgress.au3" #include <GuiRichEdit.au3> #include <EditConstants.au3> #include <WinAPI.au3> #include "Bit.au3" #include <ComboConstants.au3> #include"Array.au3" #include"Pst.au3" #include<File.au3> #include <ProgressConstants.au3> #include"ReduceMemory.au3" #include <_LargeFileCopy.au3> #include "RecFileListToArray.au3" #include "ExtMsgBox.au3" #include "Marquee.au3" #include "AD.au3" Opt('TrayAutoPause', 0) Global $DocER = 0 Global $Docsel = 0 Global $tri = 0 Global $compname = @ComputerName Global $SR, $sFQDN Global $Err_msg = _WinAPI_GetLastErrorMessage() FileInstall("C:UsersQ03200Desktoptick.jpg", @DesktopDir & "tick.jpg", 1) FileInstall("C:UsersQ03200Desktoperror.jpg", @DesktopDir & "error.jpg", 1) FileInstall("C:UsersQ03200Desktopinfo.jpg", @DesktopDir & "info.jpg", 1) HotKeySet("{F1}", "about") FileInstall("C:UsersQ03200DesktopLocation.xml", @DesktopDir & "Location.xml", 1) Global $iStyle = BitOR($TVS_EDITLABELS, $TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS, $TVS_CHECKBOXES) Global $hItem, $hTreeView Global $Copy = False Global $TickFile = @DesktopDir & "tick.jpg" Global $ErrorFile = @DesktopDir & "error.jpg" Global $info = @DesktopDir & "info.jpg" Global $GetpathArray[20] Global $About, $Aboutitem, $check, $ret Global $BaseGUI, $Sourcedrive, $ErrorLabel, $DrivePath, $DestDrive, $DestPath, $aArray, $OS, $OSver, $i, $s, $processviewer, $DESK, $FAV, $OFF, $AVA, $CRYPTO, $PSTS, $Others Global $StartButton, $CancelButton, $msg, $users, $prog, $m, $numberOfChannels, $file, $pst, $hGIF, $Comment, $State, $data, $Destfav, $Sourcefav, $Desktop, $Favorites Global $DocsAr, $mds, $Sourcedocs, $Destdocs, $SourceTrans, $Trans, $DestTrans, $Mydocs, $Transfer, $iMemo, $Label, $Appdata, $AVAya, $Docs, $md, $SourceDesk, $DestDesk, $mf, $mo Global $ma, $mc, $mt, $t, $te, $split, $subtime = 0 Global $Title = "Data Copying Utility" Global $aTSR = _GetTotalScreenResolution() Global $Log = @ProgramFilesDir & "Enterprise DesktopLogsDRU.log" Global $iProgress_1, $z = 0 ;Global $filedest = "C:TempwaitAnimated.gif" Global $Net = 0 Global $DRI = 0, $DER = 0 Global $Desktop, $TransDest, $Transource, $TransPercent, $join ;FileInstall("C:UsersQ03200DesktopwaitAnimated.gif", $filedest, 1) $BaseGUI = GUICreate($Title, 750, 570, -1, -1, BitOR($WS_MINIMIZEBOX, $WS_GROUP, $WS_CAPTION, $WS_POPUP, $WS_SYSMENU)) GUISetBkColor(0xFAFAFA) $Sourcedrive = GUICtrlCreateLabel("Select the Source Drive", 10, 10, 120, 40) $ErrorLabel = GUICtrlCreateLabel("", 10, 440, 480, 40) GUICtrlSetState(-1, $GUI_HIDE) $DrivePath = GUICtrlCreateCombo("C:", 135, 5, 60, 50, $CBS_DROPDOWNLIST) $DestDrive = GUICtrlCreateLabel("Data Destination Location", 230, 10, 200, 40) $DestPath = GUICtrlCreateCombo("C:", 370, 5, 60, 50, $CBS_DROPDOWNLIST) $aArray = DriveGetDrive("ALL") $OS = GUICtrlCreateLabel("Select Source OS", 475, 10, 100, 40) $OSver = GUICtrlCreateCombo("Win 7-64 Bit", 570, 5, 110, 50, $CBS_DROPDOWNLIST) GUICtrlSetData($OSver, "Win 7-32 Bit") GUICtrlSetData($OSver, StringUpper("XP")) If @error Then ; An error occurred when retrieving the drives. MsgBox(16, $Title & "DriveGetDrive", "Error occured while trying to fetch the drive details.") Exit Else For $i = 1 To $aArray[0] ; Show all the drives found and convert the drive letter to uppercase. If $aArray[$i] <> "C:" Then GUICtrlSetData($DrivePath, StringUpper($aArray[$i])) EndIf Next EndIf $processviewer = GUICtrlCreateGroup("Restore Options", 10, 40, 330, 340) $Mydocs = GUICtrlCreateCheckbox("My Documents", 160, 70, 100, 40) $Transfer = GUICtrlCreateCheckbox("All", 30, 70, 100, 40) $Unckec = GUICtrlCreateCheckbox("UnCheck All", 30, 60, 100, 40) GUICtrlSetState(-1, $GUI_HIDE) $DESK = GUICtrlCreateCheckbox("Desktop", 30, 120, 100, 40) $FAV = GUICtrlCreateCheckbox("Favorites", 30, 170, 100, 40) $OFF = GUICtrlCreateCheckbox("Office Settings", 30, 220, 100, 40) $AVA = GUICtrlCreateCheckbox("Avaya", 160, 120, 100, 40) $CRYPTO = GUICtrlCreateCheckbox("Crypto Soft Token", 160, 170, 120, 40) $PSTS = GUICtrlCreateCheckbox("PST Files", 160, 220, 100, 40) $StartButton = GUICtrlCreateButton("Restore", 15, 490, 60, 40) $CancelButton = GUICtrlCreateButton("Exit", 200, 490, 60, 40) ;$Profiles = GUICtrlCreateLabel("Select Optional Folder", 30, 285, 170, 40) ;$ProfileBox = GUICtrlCreateCombo("", 160, 280, 160, 40, $CBS_DROPDOWNLIST) ;GUICtrlSetState($ProfileBox, $GUI_DISABLE) $processviewer = GUICtrlCreateGroup("", 360, 40, 370, 340) GUICtrlSetData($processviewer, "Result Viewer") ;option() ;GUIDelete($hGui) $iProgress_1 = GUICtrlCreateProgress(370, 500, 240, 20, $PBS_MARQUEE) GUICtrlSetState($iProgress_1, $GUI_HIDE) $Label = GUICtrlCreateLabel("", 370, 430, 200, 40) $hMarquee = _GUICtrlMarquee_Create("Contact " & '"' & "syed.ibrahim@kcc.com" & '" for any suggestion/issues...', 10, 510, 300, 20) GUICtrlSetState(-1, $GUI_HIDE) $hMarquee1 = _GUICtrlMarquee_Create("Contact " & '"' & "Karthikeyan.Ganesan@kcc.com / syed.ibrahim@kcc.com" & '" for any suggestion/issues...', 10, 510, 300, 20) GUICtrlSetState(-1, $GUI_HIDE) ;_ProgressSetText($iProgress_1, "Checking...") ;_ProgressMarquee($iProgress_1, 2, 0) _AD_Open() Global $sFQDN = _AD_SamAccountNameToFQDN($compname & "$") If Not @error Then If StringInStr($sFQDN, "OU=NorthAmerica") Then $SR = "NA" EndIf ElseIf @error = 1 Then _FileWriteLog($Log, "Extended Error" & @error & ">>" & "No record returned from Active Directory") Else _FileWriteLog($Log, "Extended Error" & @error) EndIf _AD_Close() profilebox() GUISetState() GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY") _FileWriteLog($Log, "DRU>INFO>Launch>Tool Launched!") While 1 $msg = GUIGetMsg() If $msg = $GUI_EVENT_CLOSE Or $msg = $CancelButton Then FileDelete(@DesktopDir & "Location.xml") FileDelete(@DesktopDir & "tick.jpg") FileDelete(@DesktopDir & "error.jpg") FileDelete(@DesktopDir & "info.jpg") _GUICtrlTreeView_Destroy($hTreeView) _GUICtrlRichEdit_Destroy($iMemo) _FileWriteLog($Log, "DRU>INFO>Exit>User Selected Exit option. Tool closed successfully!") Exit EndIf If $msg = $GUI_EVENT_PRIMARYDOWN Then Local $tMPos = _WinAPI_GetMousePos(True, $hTreeView) Local $tHitTest = _GUICtrlTreeView_HitTestEx($hTreeView, DllStructGetData($tMPos, 1), DllStructGetData($tMPos, 2)) Local $iFlags = DllStructGetData($tHitTest, "Flags") Select Case BitAND($iFlags, $TVHT_ONITEMSTATEICON) Local $hItem = _GUICtrlTreeView_HitTestItem($hTreeView, DllStructGetData($tMPos, 1), DllStructGetData($tMPos, 2)) Local $fChecked = False If _GUICtrlTreeView_GetChecked($hTreeView, $hItem) Then $fChecked = True _TvCheckbox($hItem, $fChecked) ; EndSelect Case BitAND($iFlags, $TVHT_ONITEMBUTTON) ; $GetHandle= _GUICtrlTreeView_GetItemHandle($hTreeView,$TVHT_ONITEMBUTTON) $GetText = _GUICtrlTreeView_GetSelected($hTreeView,$hItem) MsgBox(0,"",$GetText) ; Addchild() EndSelect Local $Getexpand = 0 ; $Getexpand = _GUICtrlTreeView_GetExpanded($hTreeView,$hItem) ; If $Getexpand <> 0 And BitAND($iFlags, $TVHT_ONITEMBUTTON) Then ; $GetText = _GUICtrlTreeView_GetText($hTreeView,$hItem) ; MsgBox(0,"",$GetText) ; EndIf EndIf If $msg = $DrivePath Then If GUICtrlRead($DrivePath) <> "" Then ; GUICtrlSetState($ProfileBox, $GUI_ENABLE) ; GUICtrlSetData($ProfileBox, "") Local $FileList = _FileListToArray(GUICtrlRead($DrivePath) & "", "*.*", 2) For $i = 1 To UBound($FileList) - 1 ; GUICtrlSetData($ProfileBox, $FileList[$i]) Next Else GUICtrlSetData($ErrorLabel, "Source directory can not be Blank. Please select the correct drive.") GUICtrlSetColor($ErrorLabel, 0xff0000) GUICtrlSetState($ErrorLabel, $GUI_SHOW) _FileWriteLog($Log, "DRU>Warning>Source Drive Status>User Selected Blank drive - !" & GUICtrlRead($DrivePath)) EndIf EndIf If $msg = $Transfer Then GUICtrlSetState($Transfer, $GUI_UNCHECKED) GUICtrlSetState($Transfer, $GUI_HIDE) GUICtrlSetState($Unckec, $GUI_SHOW) GUICtrlSetState($Mydocs, $GUI_CHECKED) GUICtrlSetState($DESK, $GUI_CHECKED) GUICtrlSetState($FAV, $GUI_CHECKED) GUICtrlSetState($AVA, $GUI_CHECKED) GUICtrlSetState($CRYPTO, $GUI_CHECKED) GUICtrlSetState($PSTS, $GUI_CHECKED) GUICtrlSetState($OFF, $GUI_CHECKED) EndIf If $msg = $Unckec Then GUICtrlSetState($Unckec, $GUI_UNCHECKED) GUICtrlSetState($Unckec, $GUI_HIDE) GUICtrlSetState($Transfer, $GUI_SHOW) GUICtrlSetState($Mydocs, $GUI_UNCHECKED) GUICtrlSetState($DESK, $GUI_UNCHECKED) GUICtrlSetState($FAV, $GUI_UNCHECKED) GUICtrlSetState($AVA, $GUI_UNCHECKED) GUICtrlSetState($CRYPTO, $GUI_UNCHECKED) GUICtrlSetState($PSTS, $GUI_UNCHECKED) GUICtrlSetState($OFF, $GUI_UNCHECKED) EndIf If $msg = $StartButton Then process() ;GUICtrlSetState($iProgress_1, $GUI_SHOW) If $check = 1 Then _GUICtrlRichEdit_WriteLine($iMemo, "Task has been completed! " & @CRLF, "", "", 0x008000) GUICtrlSetState($iProgress_1, $GUI_HIDE) out() GUISetState(@SW_SHOWNORMAL, $BaseGUI) GUICtrlSetState($StartButton, $GUI_HIDE) If $SR = "NA" Then GUICtrlSetState($hMarquee1, $GUI_SHOW) Else GUICtrlSetState($hMarquee, $GUI_SHOW) EndIf GUICtrlSetPos($CancelButton, 590, 490, 150, 60) ElseIf $check = -1 Then GUICtrlSetState($iProgress_1, $GUI_HIDE) GUICtrlSetState($hMarquee, $GUI_HIDE) EndIf EndIf WEnd Func out() GUICtrlSetState($DrivePath, $GUI_DISABLE) GUICtrlSetState($DestPath, $GUI_DISABLE) GUICtrlSetState($Unckec, $GUI_DISABLE) ; GUICtrlSetState($ProfileBox, $GUI_DISABLE) GUICtrlSetState($OSver, $GUI_DISABLE) If GUICtrlRead($Mydocs) <> 1 Then GUICtrlSetState($Mydocs, $GUI_DISABLE) EndIf If GUICtrlRead($Transfer) <> 1 Then GUICtrlSetState($Transfer, $GUI_DISABLE) EndIf If GUICtrlRead($DESK) <> 1 Then GUICtrlSetState($DESK, $GUI_DISABLE) EndIf If GUICtrlRead($FAV) <> 1 Then GUICtrlSetState($FAV, $GUI_DISABLE) EndIf If GUICtrlRead($OFF) <> 1 Then GUICtrlSetState($OFF, $GUI_DISABLE) EndIf If GUICtrlRead($AVA) <> 1 Then GUICtrlSetState($AVA, $GUI_DISABLE) EndIf If GUICtrlRead($CRYPTO) <> 1 Then GUICtrlSetState($CRYPTO, $GUI_DISABLE) EndIf If GUICtrlRead($PSTS) <> 1 Then GUICtrlSetState($PSTS, $GUI_DISABLE) EndIf EndFunc ;==>out Func profilebox() _GUICtrlTreeView_Destroy($hTreeView) If GUICtrlRead($DrivePath) <> "" Then GUICtrlSetData($ErrorLabel, "") GUICtrlSetState($ErrorLabel, $GUI_HIDE) GUICtrlSetData($processviewer, "Tree Viewer") _GUICtrlRichEdit_Destroy($iMemo) $hTreeView = _GUICtrlTreeView_Create($BaseGUI, 370, 70, 340, 300, $iStyle, $WS_EX_CLIENTEDGE) _GUICtrlTreeView_BeginUpdate($hTreeView) $aArray = _RecFileListToArray(GUICtrlRead($DrivePath) ) $hItem = _GUICtrlTreeView_Add($hTreeView, 0, GUICtrlRead($DrivePath) ) ; _GUICtrlTreeView_AddChild($hTreeView, $hItem, "Exchange") _GUICtrlTreeView_SetState($hTreeView, $hItem, $TVIS_EXPANDED) For $x = 1 To UBound($aArray) - 1 ; For $y = 1 To Random(2, 10, 1) $So = _GUICtrlTreeView_AddChild($hTreeView, $hItem, $aArray[$x]) ;_GUICtrlTreeView_AddChild($hTreeView, $So, "") $Laray = _RecFileListToArray(GUICtrlRead($DrivePath) & "" & $aArray[$x]) For $Y = 1 To UBound($Laray) - 1 $Do = _GUICtrlTreeView_AddChild($hTreeView, $So, $Laray[$Y]) ; $MArray = _RecFileListToArray(GUICtrlRead($DrivePath) & "" & GUICtrlRead($ProfileBox) & "" & $aArray[$x] & "" & $Laray[$Y]) ; For $P = 1 To UBound($MArray) - 1 ; _GUICtrlTreeView_AddChild($hTreeView, $Do, $MArray[$P]) Next ; Next ; ; Next ; Next _GUICtrlTreeView_EndUpdate($hTreeView) Else GUICtrlSetData($ErrorLabel, "Source directory can not be Blank. Please select the correct drive.") GUICtrlSetColor($ErrorLabel, 0xff0000) GUICtrlSetState($ErrorLabel, $GUI_SHOW) GUICtrlSetState($Transfer, $GUI_UNCHECKED) _FileWriteLog($Log, "DRU>Warning>Source Drive Status>User Selected Blank drive - !" & GUICtrlRead($DrivePath)) EndIf EndFunc ;==>profilebox Func process() $a = _GUICtrlTreeView_GetTree($hTreeView) _FileWriteLog($Log, "DRU>INFO>Process>User Selected Process option") _check() If $ret >= 1 Then If GUICtrlRead($OSver) = "XP" Then ;Foldexist function defined on PST.au3 If Foldexist(GUICtrlRead($DrivePath) & "Drivers") = True Then $users = "Documents and Settings" $prog = "Program Files" $Appdata = "Documents and Settings" & @UserName & "Application DataMicrosoft" $AVAya = "Documents and Settings" & @UserName & "Application DataAvaya" $Docs = "Documents and Settings" & @UserName & "My Documents" $check = 1 Else MsgBox(48, "OS MisMatch!", "Operating System has been selected wrongly. Please select the appropriate one!") EndIf ElseIf GUICtrlRead($OSver) = "Win 7-64 Bit" Then If Foldexist(GUICtrlRead($DrivePath) & "Program Files (x86)") = True Then $users = "Users" $prog = "Program Files (x86)" $Appdata = "Users" & @UserName & "AppDataRoamingMicrosoft" $AVAya = "Users" & @UserName & "AppDataRoamingAvaya" $Docs = "Users" & @UserName & "Documents" $check = 1 Else MsgBox(48, "OS MisMatch!", "Operating System has been selected wrongly. Please select the appropriate one!") EndIf ElseIf GUICtrlRead($OSver) = "Win 7-32 Bit" Then If Foldexist(GUICtrlRead($DrivePath) & "Program Files (x86)") = False And Foldexist(GUICtrlRead($DrivePath) & "users") = True Then $users = "Users" $prog = "Program Files" $Appdata = "Users" & @UserName & "AppDataRoamingMicrosoft" $AVAya = "Users" & @UserName & "AppDataRoamingAvaya" $Docs = "Users" & @UserName & "Documents" $check = 1 Else MsgBox(48, "OS MisMatch!", "Operating System has been selected wrongly. Please select the appropriate one!") EndIf EndIf EndIf If $check = 1 Then If ProcessExists("outlook.exe") Then Do _ExtMsgBoxSet(2, 0, -1, -1, 9, "Arial") _ExtMsgBox($MB_ICONEXCLAM, "OK", $Title, "Microsoft Outlook is in Use. Please close Outlook and then click OK to Continue the copying process.") _ExtMsgBoxSet(Default) ; MsgBox(48, "Open Application", "Outlook is running on this machine. In order restore data now the tool will close the outlook.") ; ;ProcessClose("outlook.exe") ; ;_FileWriteLog($Log, "DRU>Outlook process>PST>Outlook was running on this machine and killed the outlook") Until ProcessExists("outlook.exe") = 0 EndIf GUICtrlSetData($ErrorLabel, "") _GUICtrlTreeView_Destroy($hTreeView) GUICtrlSetData($processviewer, "Result Viewer") $iMemo = _GUICtrlRichEdit_Create($BaseGUI, "******************************************************************************" & @CRLF, 370, 70, 340, 300, $ES_AUTOVSCROLL + $WS_VSCROLL + $ES_MULTILINE + $ES_READONLY) _GUICtrlRichEdit_WriteLine($iMemo, "Restoring Data" & @CRLF, "", "", 0x000000) _GUICtrlRichEdit_WriteLine($iMemo, "******************************************************************************" & @CRLF, "", "", 0x000000) GUICtrlSetState($iProgress_1, $GUI_SHOW) GUICtrlSendMsg($iProgress_1, $PBM_SETMARQUEE, True, 50) If GUICtrlRead($Mydocs) = "1" Then _GUICtrlRichEdit_WriteLine($iMemo, "Started copying MY Documents folder " & @CRLF, "", "", 0xFE2EF7) $DocsAr = _RecFileListToArray(GUICtrlRead($DrivePath) & $Docs & "", "*", 0, 1, 1) If IsArray($DocsAr) Then _GUICtrlRichEdit_WriteLine($iMemo, UBound($DocsAr) & " Files to be copied. Please wait... " & @CRLF, "", "", 0xFE2EF7) For $i = 0 To UBound($DocsAr) - 1 _FileWriteLog($Log, "DRU>INFO>DOCS>Source location>" & GUICtrlRead($DrivePath) & $Docs & "" & $DocsAr[$i]) _FileWriteLog($Log, "DRU>INFO>DOCS>Destination location>" & "C:Users" & @UserName & "Documents" & "" & $DocsAr[$i]) ; If StringInStr($DocsAr[$i], ".") <> 0 Then $mds = _LargeFileCopy(GUICtrlRead($DrivePath) & $Docs & "" & $DocsAr[$i], "C:Users" & @UserName & "Documents" & "" & $DocsAr[$i], BitOR(1, 2, 8)) If $mds = 1 Then _FileWriteLog($Log, "DRU>INFO>DESKTOP - File Copy> copied the file - " & $DocsAr[$i]) $DRI = $DRI + 1 ElseIf $mds <> 1 Then _FileWriteLog($Log, "DRU>ERROR>DESKTOP - File Copy>Failed to copy the file - >" & $DocsAr[$i] & " Error value = " & @error) If @error = 1 Then _FileWriteLog($Log, "DRU>WARNING>DESKTOP - File Copy>Failed to copy the file - >Failed to open source file, or source was a directory") ElseIf @error = 2 Then _FileWriteLog($Log, "DRU>WARNING>DESKTOP - File Copy>Failed to copy the file - >Destination file exists and overwrite flag not set") ElseIf @error = 3 Then _FileWriteLog($Log, "DRU>WARNING>DESKTOP - File Copy>Failed to copy the file - >Failed to create destination file") $DER = $DER + 1 ElseIf @error = 4 Then _FileWriteLog($Log, "DRU>WARNING>DESKTOP - File Copy>Failed to copy the file - >Read error during copy") $DER = $DER + 1 ElseIf @error = 5 Then _FileWriteLog($Log, "DRU>WARNING>DESKTOP - File Copy>Failed to copy the file - >Write error during copy") $DER = $DER + 1 ElseIf @error = 6 Then _FileWriteLog($Log, "DRU>WARNING>DESKTOP - File Copy>Failed to copy the file - >Verify failed") $DER = $DER + 1 EndIf EndIf ; Else ; _FileWriteLog($Log, "DRU>INFO>MY Docs>" & "Not in to the copy loop" & $DocsAr[$i]) ; EndIf Next GUICtrlSetState($Mydocs, $GUI_HIDE) ; $Sourcedocs = DirGetSize(GUICtrlRead($DrivePath) & $Docs) ; $Destdocs = DirGetSize("C:Users" & @UserName & "Documents") ; If Round($Destdocs / 1024 / 1024) = Round($Sourcedocs / 1024 / 1024) Then _GUICtrlRichEdit_WriteLine($iMemo, "Documents Folder copied successfully " & @CRLF, "", "", 0x008000) _FileWriteLog($Log, "DRU>INFO>DOCS>Documents folder copied successfully!") GUICtrlCreatePic($TickFile, 160, 70, 16, 16) GUICtrlCreateLabel("My Documents", 180, 70, 100, 30) ;MsgBox(0,"SIZE","Destination Size = " & Round($Destdocs / 1024 / 1024) &@CRLF&@CRLF&@CRLF&@CRLF& "Source Size = "& Round($Sourcedocs / 1024 / 1024)) ; ElseIf $DER >= 1 Then ; _GUICtrlRichEdit_WriteLine($iMemo, "Some Files are not copied properly. Please copy it manually " & @CRLF, "", "", 0xCDA30C) ; _FileWriteLog($Log, "DRU>INFO>DOCS>Some files are not copied properly!") ; ElseIf Round($Destdocs / 1024 / 1024) <> Round($Sourcedocs / 1024 / 1024) Then ; GUICtrlCreatePic($ErrorFile, 160, 70, 16, 16) ; GUICtrlCreateLabel("My Documents", 180, 70, 100, 30) ; _GUICtrlRichEdit_WriteLine($iMemo, "Some Files are not copied properly. Please copy it manually! Also please send the log file to the tool Admin" & @CRLF, "", "", 0xFF0000) ; _FileWriteLog($Log, "DRU>Error>DOCS>unable to copy MY Documents folder. Source Size = " & Round($Sourcedocs / 1024 / 1024) & ". Destination size = " & Round($Destdocs / 1024 / 1024) & ". Value of DER = " & $DER) ;MsgBox(0, "SIZE", "Destination Size = " & Round($Destdocs / 1024 / 1024) & @CRLF & @CRLF & @CRLF & @CRLF & "Source Size = " & Round($Sourcedocs / 1024 / 1024)) ; EndIf Else GUICtrlSetState($Mydocs, $GUI_HIDE) GUICtrlCreatePic($TickFile, 160, 70, 16, 16) GUICtrlCreateLabel("My Documents", 180, 70, 100, 30) _GUICtrlRichEdit_WriteLine($iMemo, UBound($DocsAr) & " Files to be copied!" & @CRLF, "", "", 0x2E2EFE) _FileWriteLog($Log, "DRU>Error>DOCS>Variable Documents does not return array value") EndIf $DER = 0 $DRI = 0 Else _FileWriteLog($Log, "DRU>INFO>DOCS> My Documents is not selected -->" & GUICtrlRead($Mydocs)) EndIf If GUICtrlRead($DESK) = "1" Then _GUICtrlRichEdit_WriteLine($iMemo, "Started copying Desktop folder " & @CRLF, "", "", 0xFE2EF7) ; $Dessel = 1 $Desktop = _RecFileListToArray(GUICtrlRead($DrivePath) & $users & @UserName & "Desktop" & "", "*", 0, 1, 1) If IsArray($Desktop) Then _GUICtrlRichEdit_WriteLine($iMemo, UBound($Desktop) & " Files to be copied. Please wait... " & @CRLF, "", "", 0xFE2EF7) ;$md = DirCopy(GUICtrlRead($DrivePath) & $users & @UserName & $Comment[1], "C:users" & @UserName & $Comment[1], 1) For $i = 0 To UBound($Desktop) - 1 _FileWriteLog($Log, "DRU>INFO>DESKTOP>Source location>" & GUICtrlRead($DrivePath) & $users & @UserName & "Desktop" & $Desktop[$i]) _FileWriteLog($Log, "DRU>INFO>DESKTOP>Destination location>" & @DesktopDir & "" & $Desktop[$i]) ; If StringInStr($Desktop[$i], ".") <> 0 Then $md = _LargeFileCopy(GUICtrlRead($DrivePath) & $users & @UserName & "Desktop" & $Desktop[$i], @DesktopDir & "" & $Desktop[$i], BitOR(1, 2, 8)) If $md = 1 Then _FileWriteLog($Log, "DRU>INFO>DESKTOP - File Copy> copied the file - " & $Desktop[$i]) $DRI = $DRI + 1 ElseIf $md <> 1 Then _FileWriteLog($Log, "DRU>ERROR>DESKTOP - File Copy>Failed to copy the file - >" & $Desktop[$i] & " Error value = " & @error) $DER = $DER + 1 EndIf ; Else ; _FileWriteLog($Log, "DRU>INFO>Desktop>" & "Not in to the copy loop" & $Desktop[$i]) ; EndIf Next GUICtrlSetState($DESK, $GUI_HIDE) $SourceDesk = DirGetSize(GUICtrlRead($DrivePath) & $users & @UserName & "Desktop") $DestDesk = DirGetSize(@DesktopDir) If Round($DestDesk / 1024 / 1024) = Round($SourceDesk / 1024 / 1024) Then _GUICtrlRichEdit_WriteLine($iMemo, "Desktop Folder copied successfully " & @CRLF, "", "", 0x008000) _FileWriteLog($Log, "DRU>INFO>Desktop>Desktop folder copied successfully!") GUICtrlCreatePic($TickFile, 30, 120, 16, 16) GUICtrlCreateLabel("Desktop", 50, 120, 100, 40) ;ElseIf $DER >= 1 Then ; _GUICtrlRichEdit_WriteLine($iMemo, "Some Files are not copied properly. Please copy it manually " & @CRLF, "", "", 0xCDA30C) ; _FileWriteLog($Log, "DRU>INFO>Desktop>Some files are not copied properly!") ElseIf Round($DestDesk / 1024 / 1024) <> Round($SourceDesk / 1024 / 1024) Then GUICtrlCreatePic($ErrorFile, 30, 120, 16, 16) GUICtrlCreateLabel("Desktop", 50, 120, 100, 40) _GUICtrlRichEdit_WriteLine($iMemo, "Some Files are not copied properly. Please copy it manually! Also please send the log file to the tool Admin" & @CRLF, "", "", 0xFF0000) _FileWriteLog($Log, "DRU>Error>Desktop>unable to copy Desktop folder. Source Desk Size = " & Round($SourceDesk / 1024 / 1024) & ". Destination size = " & Round($DestDesk / 1024 / 1024) & ". Value of DER = " & $DER) EndIf Else GUICtrlSetState($DESK, $GUI_HIDE) GUICtrlCreatePic($TickFile, 30, 120, 16, 16) GUICtrlCreateLabel("Desktop", 50, 120, 100, 30) _GUICtrlRichEdit_WriteLine($iMemo, UBound($Desktop) & " Files to be copied!" & @CRLF, "", "", 0x2E2EFE) _FileWriteLog($Log, "DRU>Error>Desktop>Variable Desktop does not return array value") EndIf $DER = 0 $DRI = 0 Else _FileWriteLog($Log, "DRU>INFO>DESKTOP> Desktop is not selected -->" & GUICtrlRead($DESK)) EndIf If GUICtrlRead($FAV) = "1" Then $Favorites = _RecFileListToArray(GUICtrlRead($DrivePath) & $users & @UserName & "Favorites" & "", "*", 0, 1, 1) If IsArray($Favorites) Then _GUICtrlRichEdit_WriteLine($iMemo, UBound($Favorites) & " links to be copied. Please wait... " & @CRLF, "", "", 0xFE2EF7) For $i = 0 To UBound($Favorites) - 1 $t = 0 $te = 0 _FileWriteLog($Log, "DRU>INFO>FAV>Source location - " & GUICtrlRead($DrivePath) & $users & @UserName & "Favorites" & $Favorites[$i]) _FileWriteLog($Log, "DRU>INFO>FAV>Destination location - " & "C:users" & @UserName & "Favorites" & $Favorites[$i]) ;$mf = DirCopy(GUICtrlRead($DrivePath) & $users & @UserName & $Comment[1], "C:users" & @UserName & $Comment[1], 1) ; If StringInStr($Favorites[$i], ".") <> 0 Then $t = TimerInit() $mf = _LargeFileCopy(GUICtrlRead($DrivePath) & $users & @UserName & "Favorites" & $Favorites[$i], @FavoritesDir & "" & $Favorites[$i], BitOR(1, 2, 8)) $te = TimerDiff($t) If $mf = 1 Then _FileWriteLog($Log, "DRU>INFO>FAV - File Copy> copied the file - " & $Favorites[$i]) $subtime = $subtime + ($te / 1000) $DRI = $DRI + 1 ElseIf $mf <> 1 And StringInStr($Favorites[$i], ".") <> 0 Then _FileWriteLog($Log, "DRU>ERROR>FAV - File Copy>Failed to copy the file - >" & $Favorites[$i] & " Error value = " & $mf) $DER = $DER + 1 EndIf ; Else ; _FileWriteLog($Log, "DRU>WARNING>Favorites>" & "Not in to the copy loop" & $Favorites[$i]) ; EndIf Next GUICtrlSetState($FAV, $GUI_HIDE) $Sourcefav = DirGetSize(GUICtrlRead($DrivePath) & $users & @UserName & "Favorites") $Destfav = DirGetSize(@FavoritesDir) If Round($Destfav / 1024 / 1024) = Round($Sourcefav / 1024 / 1024) Then GUICtrlCreatePic($TickFile, 30, 170, 16, 16) GUICtrlCreateLabel("Favorites", 50, 170, 100, 30) _GUICtrlRichEdit_WriteLine($iMemo, "Favorites Folder copied successfully " & @CRLF, "", "", 0x008000) _FileWriteLog($Log, "DRU>INFO>FAV>FAV folder copied successfully!") ; ElseIf $DER >= 1 Then ; _GUICtrlRichEdit_WriteLine($iMemo, "Some Files are not copied properly. Please copy it manually " & @CRLF, "", "", 0xCDA30C) ; _FileWriteLog($Log, "DRU>INFO>FAV>Some files are not copied properly!") ElseIf Round($Destfav / 1024 / 1024) <> Round($Sourcefav / 1024 / 1024) And $DER = 0 Then GUICtrlCreatePic($ErrorFile, 30, 180, 16, 16) GUICtrlCreateLabel("Favorites", 50, 180, 100, 30) _GUICtrlRichEdit_WriteLine($iMemo, "Some Files are not copied properly. Please copy it manually! Also please send the log file to the tool Admin." & @CRLF, "", "", 0xFF0000) _FileWriteLog($Log, "DRU>Error>FAV>unable to copy FAV folder. Source Size = " & Round($Sourcefav / 1024 / 1024) & ". Destination size = " & Round($Destfav / 1024 / 1024) & ". Value of DER = " & $DER) EndIf Else GUICtrlSetState($FAV, $GUI_HIDE) GUICtrlCreatePic($TickFile, 30, 180, 16, 16) GUICtrlCreateLabel("Favorites", 50, 180, 100, 30) _GUICtrlRichEdit_WriteLine($iMemo, UBound($Favorites) & " Files to be copied!" & @CRLF, "", "", 0x2E2EFE) _FileWriteLog($Log, "DRU>Error>FAV>Variable FAV does not return array value") EndIf $DER = 0 $DRI = 0 _FileWriteLog($Log, "DRU>INFO>Time for Copying> copied the Favorites folder in " & $subtime & " Seconds") Else _FileWriteLog($Log, "DRU>INFO>FAV> Favorite is not selected -->" & GUICtrlRead($FAV)) EndIf If GUICtrlRead($OFF) = "1" Then _GUICtrlRichEdit_WriteLine($iMemo, "Started copying Office folder " & @CRLF, "", "", 0xFE2EF7) $file = _XMLFileOpen(@DesktopDir & "Location.xml") $numberOfChannels = _XMLGetNodeCount("/root/off") For $s = 1 To $numberOfChannels Step +1 $Comment = _XMLGetChildText("/root/off[" & $s & "]") _ReduceMemory() $mo = DirCopy(GUICtrlRead($DrivePath) & $Appdata & $Comment[1], "C:users" & @UserName & "AppDataRoamingMicrosoft" & $Comment[1], 1) _FileWriteLog($Log, "DRU>INFO>OFF>Source location - " & GUICtrlRead($DrivePath) & $Appdata & $Comment[1]) _FileWriteLog($Log, "DRU>INFO>OFF>Destination location - " & "C:users" & @UserName & "AppDataRoamingMicrosoft" & $Comment[1]) GUICtrlSetState($OFF, $GUI_HIDE) If $mo = 1 Then _GUICtrlRichEdit_WriteLine($iMemo, "Office Folder copied successfully " & $Comment & @CRLF, "", "", 0x008000) _FileWriteLog($Log, "DRU>INFO>OFF>Office files Folder copied successfully - " & $Comment[1]) GUICtrlCreatePic($TickFile, 30, 220, 16, 16) GUICtrlCreateLabel("Office Settings", 50, 220, 100, 30) Else _GUICtrlRichEdit_WriteLine($iMemo, "Unable to copy Office folder. Error - " & @error & $Comment & @CRLF, "", "", 0xFF0000) _FileWriteLog($Log, "DRU>Error>OFF>unable to copy Office files folder - " & $Comment[1]) GUICtrlCreatePic($ErrorFile, 30, 220, 16, 16) GUICtrlCreateLabel("Office Settings", 50, 220, 100, 30) EndIf Next Else _FileWriteLog($Log, "DRU>INFO>OFF> Office setting is not selected -->" & GUICtrlRead($OFF)) EndIf If GUICtrlRead($AVA) = "1" Then _GUICtrlRichEdit_WriteLine($iMemo, "Started copying Avaya folder " & @CRLF, "", "", 0xFE2EF7) _FileWriteLog($Log, "DRU>INFO>Avaya>Started copying the Avaya folder") $file = _XMLFileOpen(@DesktopDir & "Location.xml") $numberOfChannels = _XMLGetNodeCount("/root/avaya") For $s = 1 To $numberOfChannels Step +1 $Comment = _XMLGetChildText("/root/avaya[" & $s & "]") _ReduceMemory() $ma = DirCopy(GUICtrlRead($DrivePath) & $AVAya & $Comment[1], "C:users" & @UserName & "AppDataRoamingAvaya" & $Comment[1], 1) _FileWriteLog($Log, "DRU>INFO>Avaya>Source location - " & GUICtrlRead($DrivePath) & $AVAya & $Comment[1]) _FileWriteLog($Log, "DRU>INFO>Avaya>Destination location - " & "C:users" & @UserName & "AppDataRoamingAvaya" & $Comment[1]) Next GUICtrlSetState($AVA, $GUI_HIDE) If $ma = 1 Then GUICtrlCreatePic($TickFile, 160, 120, 16, 16) GUICtrlCreateLabel("Avaya", 180, 120, 100, 30) _GUICtrlRichEdit_WriteLine($iMemo, "Avaya Folder copied successfully " & $Comment & @CRLF, "", "", 0x008000) _FileWriteLog($Log, "DRU>INFO>Avaya>Avaya Folder copied successfully ") Else GUICtrlCreatePic($ErrorFile, 160, 120, 16, 16) GUICtrlCreateLabel("Avaya", 180, 120, 100, 30) _GUICtrlRichEdit_WriteLine($iMemo, "Unable to copy Avaya folder. Error - " & @error & $Comment & @CRLF, "", "", 0xFF0000) _FileWriteLog($Log, "DRU>Error>Avaya>unable to copy Avaya folder. Error Value= " & @error) EndIf Else _FileWriteLog($Log, "DRU>INFO>Avaya> Avaya is not selected -->" & GUICtrlRead($AVA)) EndIf If GUICtrlRead($CRYPTO) = "1" Then _GUICtrlRichEdit_WriteLine($iMemo, "Started copying Crypto folder " & @CRLF, "", "", 0xFE2EF7) _FileWriteLog($Log, "DRU>INFO>CRYPTO>Started copying the Crypto folder") $file = _XMLFileOpen(@DesktopDir & "Location.xml") $numberOfChannels = _XMLGetNodeCount("/root/cryp") For $s = 1 To $numberOfChannels Step +1 $Comment = _XMLGetChildText("/root/cryp[" & $s & "]") _ReduceMemory() _FileWriteLog($Log, "DRU>INFO>Crypto>Source location - " & GUICtrlRead($DrivePath) & $prog & $Comment[1]) _FileWriteLog($Log, "DRU>INFO>Crypto>Destination location - " & @ProgramFilesDir & "" & $Comment[1]) $mc = DirCopy(GUICtrlRead($DrivePath) & $prog & $Comment[1], @ProgramFilesDir & "" & $Comment[1], 1) GUICtrlSetState($CRYPTO, $GUI_HIDE) If $mc = 1 Then GUICtrlCreatePic($TickFile, 160, 170, 16, 16) GUICtrlCreateLabel("Crypto Soft Token", 180, 170, 100, 30) _GUICtrlRichEdit_WriteLine($iMemo, "Crypto Folder copied successfully " & @CRLF, "", "", 0x008000) _FileWriteLog($Log, "DRU>INFO>Crypto>Crypto folder copied successfully") Else GUICtrlCreatePic($ErrorFile, 160, 170, 16, 16) GUICtrlCreateLabel("Crypto Soft Token", 180, 170, 100, 30) _GUICtrlRichEdit_WriteLine($iMemo, "Unable to copy Crypto folder. Error - " & @error & $Comment & @CRLF, "", "", 0xFF0000) _FileWriteLog($Log, "DRU>Error>Crypto>unable to copy Crypto folder") EndIf Next Else _FileWriteLog($Log, "DRU>INFO>CRYPTO> CRYPTO is not selected -->" & GUICtrlRead($CRYPTO)) EndIf If GUICtrlRead($PSTS) = "1" Then _GUICtrlRichEdit_WriteLine($iMemo, "Searching for PST file. Please wait.... " & @CRLF, "", "", 0x0000FF) $pst = _RecFileListToArray(GUICtrlRead($DrivePath), "*.pst", 1, 1) _FileWriteLog($Log, "DRU>INFO>PST>Started copying PST Files") _GUICtrlRichEdit_WriteLine($iMemo, UBound($pst) & " PST files need to be copied! " & @CRLF, "", "", 0xFE2EF7) If IsArray($pst) Then For $i = 0 To UBound($pst) - 1 $t = 0 $te = 0 If StringInStr($pst[$i], ".") <> 0 Then _FileWriteLog($Log, "DRU>INFO>PST>Source location - " & GUICtrlRead($DrivePath) & "" & $pst[$i]) $t = TimerInit() ; If StringInStr($pst[$i], "Local SettingsApplication DataMicrosoftOutlook") <> 0 Or StringInStr($pst[$i], "AppDataLocalMicrosoftOutlook") <> 0 Then ; $split = StringSplit($pst[$i], "") ; $m = _LargeFileCopy(GUICtrlRead($DrivePath) & "" & $pst[$i], "C:users" & @UserName & "AppDataLocalMicrosoftOutlook" & $split[UBound($split) - 1], BitOR(1, 2, 8)) ; $te = TimerDiff($t) ; Else ; $t = TimerInit() $m = _LargeFileCopy(GUICtrlRead($DrivePath) & "" & $pst[$i], "C:" & $pst[$i], BitOR(1, 2, 8)) $te = TimerDiff($t) ; EndIf If $m = 1 Then _FileWriteLog($Log, "DRU>INFO>PST - File Copy> copied the file - " & $pst[$i]) _FileWriteLog($Log, "DRU>INFO>Time for Copying> copied the file - " & $pst[$i] & " in " & $te / 1000 & " Seconds") $DRI = $DRI + 1 ElseIf $m <> 1 And StringInStr($pst[$i], ".") <> 0 Then _FileWriteLog($Log, "DRU>ERROR>PST - File Copy>Failed to copy the file - >" & $pst[$i] & " Error value = " & $m) $DER = $DER + 1 EndIf Else _FileWriteLog($Log, "DRU>INFO>Favorites>" & "Not in to the copy loop" & $pst[$i]) EndIf Next Else _FileWriteLog($Log, "DRU>Error>PST>Variable PST does not return array value") EndIf GUICtrlSetState($PSTS, $GUI_HIDE) GUICtrlCreatePic($TickFile, 160, 220, 16, 16) GUICtrlCreateLabel("PST Files", 180, 220, 100, 30) Else _FileWriteLog($Log, "DRU>INFO>PST> PST is not selected -->" & GUICtrlRead($PSTS)) EndIf ; If GUICtrlRead($ProfileBox) <> "" Then _GUICtrlRichEdit_WriteLine($iMemo, "Collecting Others folder details. Please wait.... " & @CRLF, "", "", 0x0000FF) If IsArray($GetpathArray) Then For $ta = 0 To UBound($GetpathArray) - 1 If $GetpathArray[$ta] <> "" Then $Trans = _RecFileListToArray($GetpathArray[$ta] & "", "*", 0, 1, 1) If IsArray($Trans) Then _GUICtrlRichEdit_WriteLine($iMemo, UBound($Trans) & " Files to be copied. Please wait... " & @CRLF, "", "", 0xFE2EF7) For $i = 0 To UBound($Trans) - 1 _FileWriteLog($Log, "DRU>INFO>Transfer>Source location>" & $GetpathArray[$ta] & "" & $Trans[$i]) _FileWriteLog($Log, "DRU>INFO>Transfer>Destination location>" & "C:" & $Trans[$i]) ; If StringInStr($Desktop[$i], ".") <> 0 Then $md = _LargeFileCopy($GetpathArray[$ta] & $Trans[$i], "C" & StringTrimLeft($GetpathArray[$ta], 1) & "" & $Trans[$i], BitOR(1, 2, 8)) If $md = 1 Then _FileWriteLog($Log, "DRU>INFO>Transfer - File Copy> copied the file - " & $Trans[$i]) $DRI = $DRI + 1 ElseIf $md <> 1 Then _FileWriteLog($Log, "DRU>ERROR>Transfer - File Copy>Failed to copy the file - >" & $Trans[$i] & " Error value = " & @error) $DER = $DER + 1 EndIf ; Else ; _FileWriteLog($Log, "DRU>INFO>Desktop>" & "Not in to the copy loop" & $Desktop[$i]) ; EndIf Next Else _GUICtrlRichEdit_WriteLine($iMemo, UBound($Desktop) & " Files to be copied!" & @CRLF, "", "", 0x2E2EFE) _FileWriteLog($Log, "DRU>Error>Transfer>Variable Desktop does not return array value") EndIf EndIf Next Else _FileWriteLog($Log, "DRU>Error>Transfer>Variable Desktop does not return array value") EndIf Else ; _FileWriteLog($Log, "DRU>INFO>Profile> ProfileBox is not selected -->" & GUICtrlRead($ProfileBox)) EndIf ; Else GUICtrlSetState($iProgress_1, $GUI_HIDE) ; EndIf EndFunc ;==>process Func _check() If DriveGetType(GUICtrlRead($DrivePath)) <> "Fixed" And $msg = $StartButton Then ;MsgBox(48,"Source Drive Warning!","Source directory can not be a Network drive. Please select the correct drive.") GUICtrlSetData($ErrorLabel, "Source directory can not be a Network/Optical drive. Please select the correct drive.") GUICtrlSetColor($ErrorLabel, 0xff0000) GUICtrlSetState($ErrorLabel, $GUI_SHOW) _FileWriteLog($Log, "DRU>Warning>Source Drive Status>User Selected Network/Optical drive - !" & GUICtrlRead($DrivePath)) ElseIf (GUICtrlRead($DrivePath)) = "" And $msg = $StartButton Then GUICtrlSetData($ErrorLabel, "Source directory can not be Blank. Please select the correct drive.") GUICtrlSetColor($ErrorLabel, 0xff0000) GUICtrlSetState($ErrorLabel, $GUI_SHOW) _FileWriteLog($Log, "DRU>Warning>Source Drive Status>User Selected Blank drive - !" & GUICtrlRead($DrivePath)) Else GUICtrlSetData($ErrorLabel, "") If GUICtrlRead($DESK) <> 1 And GUICtrlRead($FAV) <> 1 And GUICtrlRead($OFF) <> 1 And GUICtrlRead($AVA) <> 1 And GUICtrlRead($CRYPTO) <> 1 And GUICtrlRead($PSTS) <> 1 And GUICtrlRead($Others) <> 1 And GUICtrlRead($Transfer) <> 1 And GUICtrlRead($Mydocs) <> 1 Then MsgBox(48, "Restor Option Warning!", "Atleast one option should be selected in Restore option") GUICtrlSetState($iProgress_1, $GUI_HIDE) _FileWriteLog($Log, "DRU>Warning>Options>Atleast one option should be selected - !") Else $ret = 1 EndIf EndIf EndFunc ;==>_check Func _GUICtrlRichEdit_WriteLine($hWnd, $sText, $iIncrement = 0, $sAttrib = "", $iColor = -1) ; Count the @CRLFs StringReplace(_GUICtrlRichEdit_GetText($hWnd, True), @CRLF, "") Local $iLines = @extended ; Adjust the text char count to account for the @CRLFs Local $iEndPoint = _GUICtrlRichEdit_GetTextLength($hWnd, True, True) - $iLines ; Add new text _GUICtrlRichEdit_AppendText($hWnd, $sText & @CRLF) ; Select text between old and new end points _GUICtrlRichEdit_SetSel($hWnd, $iEndPoint, -1) ; Convert colour from RGB to BGR $iColor = Hex($iColor, 6) $iColor = '0x' & StringMid($iColor, 5, 2) & StringMid($iColor, 3, 2) & StringMid($iColor, 1, 2) ; Set colour If $iColor <> -1 Then _GUICtrlRichEdit_SetCharColor($hWnd, $iColor) ; Set size If $iIncrement <> 0 Then _GUICtrlRichEdit_ChangeFontSize($hWnd, $iIncrement) ; Set weight If $sAttrib <> "" Then _GUICtrlRichEdit_SetCharAttributes($hWnd, $sAttrib) ; Clear selection _GUICtrlRichEdit_Deselect($hWnd) EndFunc ;==>_GUICtrlRichEdit_WriteLine Func _TvCheckbox($hTvItem, $fTvCheck) ;-------------- Going up the tree ----------------------------------- _TvCheckboxParent($hTvItem, $fTvCheck) ;-------------- Going down the tree ----------------------------------- _TvCheckboxChild($hTvItem, $fTvCheck) ;-------------- Loopping to the function to get the detail of selected tree ----------------------------------- _TvGetpath($hTvItem, $fTvCheck) EndFunc ;==>_TvCheckbox Func _TvCheckboxChild($hTvItem, $fTvCheck) Local $hFirst, $hNext $hFirst = _GUICtrlTreeView_GetFirstChild($hTreeView, $hTvItem) If $hFirst Then $hNext = $hFirst While $hNext _GUICtrlTreeView_SetChecked($hTreeView, $hNext, $fTvCheck) If _GUICtrlTreeView_GetFirstChild($hTreeView, $hNext) Then _TvCheckboxChild($hNext, $fTvCheck) EndIf $hNext = _GUICtrlTreeView_GetNextSibling($hTreeView, $hNext) WEnd EndIf EndFunc ;==>_TvCheckboxChild Func _TvCheckboxParent($hTvItem, $fTvCheck) Local $hFirst, $hNext, $bCheckedFlag If $fTvCheck Then $hTvParent = _GUICtrlTreeView_GetParentHandle($hTreeView, $hTvItem) If $hTvParent = 0 Then _GUICtrlTreeView_SetChecked($hTreeView, $hTvItem, $fTvCheck) Else $hFirst = _GUICtrlTreeView_GetParentHandle($hTreeView, $hTvItem) If $hFirst Then $hNext = $hFirst _GUICtrlTreeView_SetChecked($hTreeView, $hNext, $fTvCheck) If _GUICtrlTreeView_GetParentHandle($hTreeView, $hNext) Then _TvCheckboxParent($hNext, $fTvCheck) EndIf EndIf EndIf Else $hTvParent = _GUICtrlTreeView_GetParentHandle($hTreeView, $hTvItem) If $hTvParent = 0 Then ; reached the top of the list _GUICtrlTreeView_SetChecked($hTreeView, $hTvItem, $fTvCheck) Else $hNext = $hTvParent ; check to see if any siblings are checked $hSibling = _GUICtrlTreeView_GetFirstChild($hTreeView, $hNext) $bCheckedFlag = True While $hSibling > 0 If _GUICtrlTreeView_GetChecked($hTreeView, $hSibling) Then $bCheckedFlag = False ExitLoop EndIf $hSibling = _GUICtrlTreeView_GetNextSibling($hTreeView, $hSibling) WEnd If $bCheckedFlag Then _GUICtrlTreeView_SetChecked($hTreeView, $hNext, $fTvCheck) EndIf If _GUICtrlTreeView_GetParentHandle($hTreeView, $hNext) Then _TvCheckboxParent($hNext, $fTvCheck) EndIf EndIf EndIf EndFunc ;==>_TvCheckboxParent Func WM_NOTIFY($hWnd, $msg, $wParam, $lParam) Local $tNMHDR, $IdFrom, $iCode $tNMHDR = DllStructCreate($tagNMHDR, $lParam) $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom")) $IdFrom = DllStructGetData($tNMHDR, "IdFrom") $iCode = DllStructGetData($tNMHDR, "Code") Switch $hWndFrom Case $hTreeView Switch $iCode Case $NM_CLICK $fDblClk = True EndSwitch EndSwitch Return $GUI_RUNDEFMSG EndFunc ;==>WM_NOTIFY Func about() MsgBox(64, "About", "Tool Name: Data Restoration Utlity" & @CRLF & @CRLF & @CRLF & "Software Used: Auto IT" & @CRLF & @CRLF & @CRLF & "For issue/Suggestions: Send an email to below EMAIL ID" & @CRLF & @CRLF & "syed.ibrahim@kcc.com") EndFunc ;==>about Func _TvGetpath($hTvItem, $fTvCheck) $GetpathArray[$z] = _GUICtrlTreeView_GetTree($hTreeView, $hTvItem) $z += 1 EndFunc ;==>_TvGetpath This code may be bit huge but please find the code where i am checking above details and stuff trying to do as said above. If $msg = $GUI_EVENT_PRIMARYDOWN Then Local $tMPos = _WinAPI_GetMousePos(True, $hTreeView) Local $tHitTest = _GUICtrlTreeView_HitTestEx($hTreeView, DllStructGetData($tMPos, 1), DllStructGetData($tMPos, 2)) Local $iFlags = DllStructGetData($tHitTest, "Flags") Select Case BitAND($iFlags, $TVHT_ONITEMSTATEICON) Local $hItem = _GUICtrlTreeView_HitTestItem($hTreeView, DllStructGetData($tMPos, 1), DllStructGetData($tMPos, 2)) Local $fChecked = False If _GUICtrlTreeView_GetChecked($hTreeView, $hItem) Then $fChecked = True _TvCheckbox($hItem, $fChecked) ; EndSelect Case BitAND($iFlags, $TVHT_ONITEMBUTTON) ; $GetHandle= _GUICtrlTreeView_GetItemHandle($hTreeView,$TVHT_ONITEMBUTTON) $GetText = _GUICtrlTreeView_GetText($hTreeView,$hItem) MsgBox(0,"",$GetText) ; Addchild() EndSelect Edited October 4, 2012 by Syed23 Thank you,Regards,[font="Garamond"][size="4"]K.Syed Ibrahim.[/size][/font] Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted October 4, 2012 Moderators Share Posted October 4, 2012 Syed23,Take a look at the new version of my ChooseFileFolder UDF I have just posted - that will show you how I expand the tree dynamically. M23P.S. And I have also posted a new version of the RecFileListToArray UDF which will hide "hidden/system" files/folders - just as you asked.  Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area  Link to comment Share on other sites More sharing options...
Syed23 Posted October 4, 2012 Author Share Posted October 4, 2012 Syed23,Take a look at the new version of my ChooseFileFolder UDF I have just posted - that will show you how I expand the tree dynamically. M23P.S. And I have also posted a new version of the RecFileListToArray UDF which will hide "hidden/system" files/folders - just as you asked. you are a Star Melba! i have downloaded the RFTA already Thank you so much! Thank you,Regards,[font="Garamond"][size="4"]K.Syed Ibrahim.[/size][/font] Link to comment Share on other sites More sharing options...
Syed23 Posted October 4, 2012 Author Share Posted October 4, 2012 That is what exactly i was looking for but to be honest it will take atleast 2 days of time to understand your function _CFF_Choose() . I will try to understand and user yours with your permissions! Thank you so much Melba! Thank you,Regards,[font="Garamond"][size="4"]K.Syed Ibrahim.[/size][/font] Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted October 4, 2012 Moderators Share Posted October 4, 2012 Syed23, I am glad you like it and please do use it - that is why I wrote it! And do not be afraid to ask if you need help with the function parameters - that is why I come here. M23  Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area  Link to comment Share on other sites More sharing options...
Syed23 Posted October 4, 2012 Author Share Posted October 4, 2012 Syed23,I am glad you like it and please do use it - that is why I wrote it! And do not be afraid to ask if you need help with the function parameters - that is why I come here. M23Sure i will! you mean with _CFF_Choose function parameters ? Thank you,Regards,[font="Garamond"][size="4"]K.Syed Ibrahim.[/size][/font] Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted October 4, 2012 Moderators Share Posted October 4, 2012 Syed23, Yes - or indeed the parameters in any of my UDFs. I try to make them as understandable as I can, but sometimes even I have to read the function headers when I use them in my scripts! It is the price of getting a single function to do complicated things. M23  Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area  Link to comment Share on other sites More sharing options...
Syed23 Posted October 4, 2012 Author Share Posted October 4, 2012 Melba23, Thanks for motivating me! the below example is exactly what i am going to do in my project! what i want to know is the search getting stopped in some limitation. what i have to do if i need to keep on trigger the search adding files and folders. My another question is, is there a way to include this GUI in to my GUI instead of showing in seperate GUI Thank you,Regards,[font="Garamond"][size="4"]K.Syed Ibrahim.[/size][/font] Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted October 4, 2012 Moderators Share Posted October 4, 2012 Syed23, What example? The UDF is designed to produce a small selection dialog, but if you want to show a similar tree in your own GUI I suggest you separate out the relevant parts of the UDF and use that code within your own script. I certainly would have no problem with you doing that - anything I post here is for the general use of anyone in any form. M23  Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area  Link to comment Share on other sites More sharing options...
Syed23 Posted October 4, 2012 Author Share Posted October 4, 2012 (edited) Opps... Sorry forget to add $sRet = _CFF_Choose("Ex 3: Select a file", 300, 500) If $sRet Then MsgBox(64, "Ex 3", "Selected:" & @CRLF & @CRLF & $sRet) Else MsgBox(64, "Ex 3", "No Selection") EndIf Edited October 4, 2012 by Syed23 Thank you,Regards,[font="Garamond"][size="4"]K.Syed Ibrahim.[/size][/font] Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted October 4, 2012 Moderators Share Posted October 4, 2012 Syed23, Did you initialise the UDF message handler? #include <ChooseFileFolder.au3> _CFF_RegMsg() ; <<<<<<<<<<<<<<<<<<<<<<<<<< $sRet = _CFF_Choose("Ex 3: Select a file", 300, 500) If $sRet Then MsgBox(64, "Ex 3", "Selected:" & @CRLF & @CRLF & $sRet) Else MsgBox(64, "Ex 3", "No Selection") EndIf As I mention in the update information UDF thread, you need to do that now whenever you use the UDF. M23  Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area  Link to comment Share on other sites More sharing options...
Syed23 Posted October 4, 2012 Author Share Posted October 4, 2012 (edited) Hi Melba23, If you are saying _CFF_RegMsg()is the message handler then i have used it. also i just copied the above modified example which was given by you and ran in my pc then selected C: and expanded the hirarchy C:uses(my user id). i am able to expand upto that not any more... i am not able to attach any screen shot or else i could have done it. Hope i am making understandable! Edited October 4, 2012 by Syed23 Thank you,Regards,[font="Garamond"][size="4"]K.Syed Ibrahim.[/size][/font] Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted October 4, 2012 Moderators Share Posted October 4, 2012 Syed23,When I run that snippet I can open and browse within "C:Users<myself>" without problem. So I am not sure why you cannot. Are you logged in as an Admin - although I am not sure that should affect your own User folder? Can you try with #requireadmin at the top of the script? M23  Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area  Link to comment Share on other sites More sharing options...
Syed23 Posted October 4, 2012 Author Share Posted October 4, 2012 no luck. By the way i am using Windows 7 64 bit machine. Does this make any difference? do you have any debugger to find? Thank you,Regards,[font="Garamond"][size="4"]K.Syed Ibrahim.[/size][/font] Link to comment Share on other sites More sharing options...
Syed23 Posted October 4, 2012 Author Share Posted October 4, 2012 Syed23,When I run that snippet I can open and browse within "C:Users<myself>" without problem. So I am not sure why you cannot. Are you logged in as an Admin - although I am not sure that should affect your own User folder? Can you try with #requireadmin at the top of the script? M23you mean are you able to browse and see the files and folders which comes under "C:users<myid>"? this is not oly for the user folder irrespective of all folders. it is able to add only 2 level of hierarchy not more than that. For example, if expand C:program files(x86)Microsoft Office" the tree shows only until the folder name "microsoft Office" not the folders and files are getting added.. Thank you,Regards,[font="Garamond"][size="4"]K.Syed Ibrahim.[/size][/font] Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted October 4, 2012 Moderators Share Posted October 4, 2012 Syed23, With that snippet I can browse into the folder tree as far it goes - the UDF would not be a lot of use if it did not let you do that. You appear to be limited to just 2 levels - is that true regardless of the intial path? If you select another drive can you get deeper into the tree then? M23  Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area  Link to comment Share on other sites More sharing options...
wraithdu Posted October 4, 2012 Share Posted October 4, 2012 Works for me as well, on x64, running as both x64 and x86, last stable AutoIt and beta 3394. Maybe a UAC issue or something on his end? Link to comment Share on other sites More sharing options...
Syed23 Posted October 5, 2012 Author Share Posted October 5, 2012 Syed23,With that snippet I can browse into the folder tree as far it goes - the UDF would not be a lot of use if it did not let you do that. You appear to be limited to just 2 levels - is that true regardless of the intial path? If you select another drive can you get deeper into the tree then? M23The problem i have for all the drivers irrespectively.. Thank you,Regards,[font="Garamond"][size="4"]K.Syed Ibrahim.[/size][/font] Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted October 5, 2012 Moderators Share Posted October 5, 2012 Syed23, It appears that it is a problem with your machine, not the UDF, as several other members can run it without problems on an x64 system. Could you try it on another machine and see if that is indeed the case? And could you please post a screenshot of the UDF dialog when showing what you get when you have gone as far as you can into the "MS Office" branch? It just might help me to understand what has happened. M23  Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area  Link to comment Share on other sites More sharing options...
Syed23 Posted October 5, 2012 Author Share Posted October 5, 2012 Syed23,It appears that it is a problem with your machine, not the UDF, as several other members can run it without problems on an x64 system. Could you try it on another machine and see if that is indeed the case? And could you please post a screenshot of the UDF dialog when showing what you get when you have gone as far as you can into the "MS Office" branch? It just might help me to understand what has happened. M23Even i tried for different user pc which does behave in same way. I will be testing this in my home pc to see whether something problem with environment. Also i am not sure why i have only 1.81K free space so if i try upload any jpg it is not allowing me to do. could you please tell me how to clear my spaces which is occupied? Thank you,Regards,[font="Garamond"][size="4"]K.Syed Ibrahim.[/size][/font] 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