wraithdu Posted September 24, 2012 Author Share Posted September 24, 2012 I can't help without an example of the problem. Link to comment Share on other sites More sharing options...
Syed23 Posted September 24, 2012 Share Posted September 24, 2012 (edited) ok! please find my entire code below! hope that should not make you anger on me .. i am slow learner on codding expandcollapse popup#RequireAdmin #region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_Icon=database-next.ico #AutoIt3Wrapper_Res_Comment=Data Restoration Utility #AutoIt3Wrapper_Res_Description=Data Restoration Utility #AutoIt3Wrapper_Res_Fileversion=1.0.0.3 #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 " & '"' & "sikaleel@gmail.com" & '" for any suggestion/issues...', 10, 510, 300, 20) GUICtrlSetState(-1, $GUI_HIDE) $hMarquee1 = _GUICtrlMarquee_Create("Contact " & '"' & "sikaleel@gmail.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() 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 EndSelect 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 = $ProfileBox Then profilebox() 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) & "" & GUICtrlRead($ProfileBox)) $hItem = _GUICtrlTreeView_Add($hTreeView, 0, GUICtrlRead($DrivePath) & "" & GUICtrlRead($ProfileBox) & "") _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]) $Laray = _RecFileListToArray(GUICtrlRead($DrivePath) & "" & GUICtrlRead($ProfileBox) & "" & $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($ProfileBox) = "" And 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 & "sikaleel@gmail.com") EndFunc ;==>about Func _TvGetpath($hTvItem, $fTvCheck) $GetpathArray[$z] = _GUICtrlTreeView_GetTree($hTreeView, $hTvItem) $z += 1 EndFunc ;==>_TvGetpath Edited September 24, 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...
guinness Posted September 24, 2012 Share Posted September 24, 2012 Syed23,I think wraithdu was looking at a small reproducer, not the entire code, especially since you haven't made it obvious where all those UDFs are from. UDF List:  _AdapterConnections() • _AlwaysRun() • _AppMon() • _AppMonEx() • _ArrayFilter/_ArrayReduce • _BinaryBin() • _CheckMsgBox() • _CmdLineRaw() • _ContextMenu() • _ConvertLHWebColor()/_ConvertSHWebColor() • _DesktopDimensions() • _DisplayPassword() • _DotNet_Load()/_DotNet_Unload() • _Fibonacci() • _FileCompare() • _FileCompareContents() • _FileNameByHandle() • _FilePrefix/SRE() • _FindInFile() • _GetBackgroundColor()/_SetBackgroundColor() • _GetConrolID() • _GetCtrlClass() • _GetDirectoryFormat() • _GetDriveMediaType() • _GetFilename()/_GetFilenameExt() • _GetHardwareID() • _GetIP() • _GetIP_Country() • _GetOSLanguage() • _GetSavedSource() • _GetStringSize() • _GetSystemPaths() • _GetURLImage() • _GIFImage() • _GoogleWeather() • _GUICtrlCreateGroup() • _GUICtrlListBox_CreateArray() • _GUICtrlListView_CreateArray() • _GUICtrlListView_SaveCSV() • _GUICtrlListView_SaveHTML() • _GUICtrlListView_SaveTxt() • _GUICtrlListView_SaveXML() • _GUICtrlMenu_Recent() • _GUICtrlMenu_SetItemImage() • _GUICtrlTreeView_CreateArray() • _GUIDisable() • _GUIImageList_SetIconFromHandle() • _GUIRegisterMsg() • _GUISetIcon() • _Icon_Clear()/_Icon_Set() • _IdleTime() • _InetGet() • _InetGetGUI() • _InetGetProgress() • _IPDetails() • _IsFileOlder() • _IsGUID() • _IsHex() • _IsPalindrome() • _IsRegKey() • _IsStringRegExp() • _IsSystemDrive() • _IsUPX() • _IsValidType() • _IsWebColor() • _Language() • _Log() • _MicrosoftInternetConnectivity() • _MSDNDataType() • _PathFull/GetRelative/Split() • _PathSplitEx() • _PrintFromArray() • _ProgressSetMarquee() • _ReDim() • _RockPaperScissors()/_RockPaperScissorsLizardSpock() • _ScrollingCredits • _SelfDelete() • _SelfRename() • _SelfUpdate() • _SendTo() • _ShellAll() • _ShellFile() • _ShellFolder() • _SingletonHWID() • _SingletonPID() • _Startup() • _StringCompact() • _StringIsValid() • _StringRegExpMetaCharacters() • _StringReplaceWholeWord() • _StringStripChars() • _Temperature() • _TrialPeriod() • _UKToUSDate()/_USToUKDate() • _WinAPI_Create_CTL_CODE() • _WinAPI_CreateGUID() • _WMIDateStringToDate()/_DateToWMIDateString() • Au3 script parsing • AutoIt Search • AutoIt3 Portable • AutoIt3WrapperToPragma • AutoItWinGetTitle()/AutoItWinSetTitle() • Coding • DirToHTML5 • FileInstallr • FileReadLastChars() • GeoIP database • GUI - Only Close Button • GUI Examples • GUICtrlDeleteImage() • GUICtrlGetBkColor() • GUICtrlGetStyle() • GUIEvents • GUIGetBkColor() • Int_Parse() & Int_TryParse() • IsISBN() • LockFile() • Mapping CtrlIDs • OOP in AutoIt • ParseHeadersToSciTE() • PasswordValid • PasteBin • Posts Per Day • PreExpand • Protect Globals • Queue() • Resource Update • ResourcesEx • SciTE Jump • Settings INI • SHELLHOOK • Shunting-Yard • Signature Creator • Stack() • Stopwatch() • StringAddLF()/StringStripLF() • StringEOLToCRLF() • VSCROLL • WM_COPYDATA • More Examples... Updated: 22/04/2018 Link to comment Share on other sites More sharing options...
Syed23 Posted September 24, 2012 Share Posted September 24, 2012 (edited) ok. if i understood correct let me show the function how i am using for copying the files. For $i = 0 To UBound($DocsAr) - 1 $mds = _LargeFileCopy(GUICtrlRead($DrivePath) & $Docs & "" & $DocsAr[$i], "C:Users" & @UserName & "Documents" & "" & $DocsAr[$i], BitOR(1, 2, 8)) Next This is how i am using the function to copy the files. _RecFileListToArray() function will scan my entire my documents folder and shows the files to be copied in Array. I am passing the array into For loop and asking the files to be copied one by one. I am not sure whether due to speed of copy or due to file size it is happening. Please let me know if you have any other question. Edited September 24, 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...
dany Posted September 24, 2012 Share Posted September 24, 2012 @Syed23: I do not know if it will solve your problem but the snippet provided has an error in it. From _RecFileListToArray.au3: ; Return values .: Success: One-dimensional array made up as follows: ; |$array[0] = Number of FilesFolders returned So your snippet should be: For $i = 1 To $DocsAr[0] $mds = _LargeFileCopy(GUICtrlRead($DrivePath) & $Docs & "" & $DocsAr[$i], "C:Users" & @UserName & "Documents" & "" & $DocsAr[$i], BitOR(1, 2, 8)) Next [center]Spiderskank Spiderskank[/center]GetOpt Parse command line options UDF | AU3Text Program internationalization UDF | Identicon visual hash UDF Link to comment Share on other sites More sharing options...
wraithdu Posted September 24, 2012 Author Share Posted September 24, 2012 (edited) @Syed23 Your usage looks correct. The only reason I can think your GUI is showing not responding is because it is taking a really long time for the function to copy and verify a chunk of the file. Are you copying to network drives or somewhere with really slow storage? Do you have an AV running that is trying to scan at the same time and locking things up (you could check if this always happens with a specific file type like EXEs)? You can also try reducing the size of the chunks. They are default at 8MB, which is probably too big in hindsight. Try a smaller value like 1 MB or even down to 64K. Edited September 24, 2012 by wraithdu Link to comment Share on other sites More sharing options...
llewxam Posted September 24, 2012 Share Posted September 24, 2012 For what it's worth, a long time ago I tested chunk sizes' relation to speed and until I hit VERY small sizes it seemed to not slow the copy down. If memory serves, I even got down to 128KB or so before the speed was much worse. Also, in hindsight of using this UDF heavily for a pretty long time now, the only thing I can say I dislike about it is that since the UDF creates a new file as the target, the date stamps show as that time. Using Windows native file copy, the timestamps will be the same as the original, so I have added a function in my Sync tool to allow the timestamps to carry over. Not something your UDF can fix, just a comment on something I have had to work around. Ian My projects: IP Scanner - Multi-threaded ping tool to scan your available networks for used and available IP addresses, shows ping times, resolves IPs in to host names, and allows individual IPs to be pinged. INFSniff - Great technicians tool - a tool which scans DriverPacks archives for INF files and parses out the HWIDs to a database file, and rapidly scans the local machine's HWIDs, searches the database for matches, and installs them. PPK3 (Persistent Process Killer V3) - Another for the techs - suppress running processes that you need to keep away, helpful when fighting spyware/viruses. Sync Tool - Folder sync tool with lots of real time information and several checking methods. USMT Front End - Front End for Microsoft's User State Migration Tool, including all files needed for USMT 3.01 and 4.01, 32 bit and 64 bit versions. Audit Tool - Computer audit tool to gather vital hardware, Windows, and Office information for IT managers and field techs. Capabilities include creating a customized site agent. CSV Viewer - Displays CSV files with automatic column sizing and font selection. Lines can also be copied to the clipboard for data extraction. MyDirStat - Lists number and size of files on a drive or specified path, allows for deletion within the app. 2048 Game - My version of 2048, fun tile game. Juice Lab - Ecigarette liquid making calculator. Data Protector - Secure notes to save sensitive information. VHD Footer - Add a footer to a forensic hard drive image to allow it to be mounted or used as a virtual machine hard drive. Find in File - Searches files containing a specified phrase. Link to comment Share on other sites More sharing options...
guinness Posted September 24, 2012 Share Posted September 24, 2012 What about using FileGetTime & FileSetTime instead? UDF List:  _AdapterConnections() • _AlwaysRun() • _AppMon() • _AppMonEx() • _ArrayFilter/_ArrayReduce • _BinaryBin() • _CheckMsgBox() • _CmdLineRaw() • _ContextMenu() • _ConvertLHWebColor()/_ConvertSHWebColor() • _DesktopDimensions() • _DisplayPassword() • _DotNet_Load()/_DotNet_Unload() • _Fibonacci() • _FileCompare() • _FileCompareContents() • _FileNameByHandle() • _FilePrefix/SRE() • _FindInFile() • _GetBackgroundColor()/_SetBackgroundColor() • _GetConrolID() • _GetCtrlClass() • _GetDirectoryFormat() • _GetDriveMediaType() • _GetFilename()/_GetFilenameExt() • _GetHardwareID() • _GetIP() • _GetIP_Country() • _GetOSLanguage() • _GetSavedSource() • _GetStringSize() • _GetSystemPaths() • _GetURLImage() • _GIFImage() • _GoogleWeather() • _GUICtrlCreateGroup() • _GUICtrlListBox_CreateArray() • _GUICtrlListView_CreateArray() • _GUICtrlListView_SaveCSV() • _GUICtrlListView_SaveHTML() • _GUICtrlListView_SaveTxt() • _GUICtrlListView_SaveXML() • _GUICtrlMenu_Recent() • _GUICtrlMenu_SetItemImage() • _GUICtrlTreeView_CreateArray() • _GUIDisable() • _GUIImageList_SetIconFromHandle() • _GUIRegisterMsg() • _GUISetIcon() • _Icon_Clear()/_Icon_Set() • _IdleTime() • _InetGet() • _InetGetGUI() • _InetGetProgress() • _IPDetails() • _IsFileOlder() • _IsGUID() • _IsHex() • _IsPalindrome() • _IsRegKey() • _IsStringRegExp() • _IsSystemDrive() • _IsUPX() • _IsValidType() • _IsWebColor() • _Language() • _Log() • _MicrosoftInternetConnectivity() • _MSDNDataType() • _PathFull/GetRelative/Split() • _PathSplitEx() • _PrintFromArray() • _ProgressSetMarquee() • _ReDim() • _RockPaperScissors()/_RockPaperScissorsLizardSpock() • _ScrollingCredits • _SelfDelete() • _SelfRename() • _SelfUpdate() • _SendTo() • _ShellAll() • _ShellFile() • _ShellFolder() • _SingletonHWID() • _SingletonPID() • _Startup() • _StringCompact() • _StringIsValid() • _StringRegExpMetaCharacters() • _StringReplaceWholeWord() • _StringStripChars() • _Temperature() • _TrialPeriod() • _UKToUSDate()/_USToUKDate() • _WinAPI_Create_CTL_CODE() • _WinAPI_CreateGUID() • _WMIDateStringToDate()/_DateToWMIDateString() • Au3 script parsing • AutoIt Search • AutoIt3 Portable • AutoIt3WrapperToPragma • AutoItWinGetTitle()/AutoItWinSetTitle() • Coding • DirToHTML5 • FileInstallr • FileReadLastChars() • GeoIP database • GUI - Only Close Button • GUI Examples • GUICtrlDeleteImage() • GUICtrlGetBkColor() • GUICtrlGetStyle() • GUIEvents • GUIGetBkColor() • Int_Parse() & Int_TryParse() • IsISBN() • LockFile() • Mapping CtrlIDs • OOP in AutoIt • ParseHeadersToSciTE() • PasswordValid • PasteBin • Posts Per Day • PreExpand • Protect Globals • Queue() • Resource Update • ResourcesEx • SciTE Jump • Settings INI • SHELLHOOK • Shunting-Yard • Signature Creator • Stack() • Stopwatch() • StringAddLF()/StringStripLF() • StringEOLToCRLF() • VSCROLL • WM_COPYDATA • More Examples... Updated: 22/04/2018 Link to comment Share on other sites More sharing options...
wraithdu Posted September 25, 2012 Author Share Posted September 25, 2012 File times wouldn't be hard to add, just an additional flag bit and a few lines of code. Link to comment Share on other sites More sharing options...
guinness Posted September 25, 2012 Share Posted September 25, 2012 File times wouldn't be hard to add, just an additional flag bit and a few lines of code.If it's not too much trouble then that would be awesome. UDF List:  _AdapterConnections() • _AlwaysRun() • _AppMon() • _AppMonEx() • _ArrayFilter/_ArrayReduce • _BinaryBin() • _CheckMsgBox() • _CmdLineRaw() • _ContextMenu() • _ConvertLHWebColor()/_ConvertSHWebColor() • _DesktopDimensions() • _DisplayPassword() • _DotNet_Load()/_DotNet_Unload() • _Fibonacci() • _FileCompare() • _FileCompareContents() • _FileNameByHandle() • _FilePrefix/SRE() • _FindInFile() • _GetBackgroundColor()/_SetBackgroundColor() • _GetConrolID() • _GetCtrlClass() • _GetDirectoryFormat() • _GetDriveMediaType() • _GetFilename()/_GetFilenameExt() • _GetHardwareID() • _GetIP() • _GetIP_Country() • _GetOSLanguage() • _GetSavedSource() • _GetStringSize() • _GetSystemPaths() • _GetURLImage() • _GIFImage() • _GoogleWeather() • _GUICtrlCreateGroup() • _GUICtrlListBox_CreateArray() • _GUICtrlListView_CreateArray() • _GUICtrlListView_SaveCSV() • _GUICtrlListView_SaveHTML() • _GUICtrlListView_SaveTxt() • _GUICtrlListView_SaveXML() • _GUICtrlMenu_Recent() • _GUICtrlMenu_SetItemImage() • _GUICtrlTreeView_CreateArray() • _GUIDisable() • _GUIImageList_SetIconFromHandle() • _GUIRegisterMsg() • _GUISetIcon() • _Icon_Clear()/_Icon_Set() • _IdleTime() • _InetGet() • _InetGetGUI() • _InetGetProgress() • _IPDetails() • _IsFileOlder() • _IsGUID() • _IsHex() • _IsPalindrome() • _IsRegKey() • _IsStringRegExp() • _IsSystemDrive() • _IsUPX() • _IsValidType() • _IsWebColor() • _Language() • _Log() • _MicrosoftInternetConnectivity() • _MSDNDataType() • _PathFull/GetRelative/Split() • _PathSplitEx() • _PrintFromArray() • _ProgressSetMarquee() • _ReDim() • _RockPaperScissors()/_RockPaperScissorsLizardSpock() • _ScrollingCredits • _SelfDelete() • _SelfRename() • _SelfUpdate() • _SendTo() • _ShellAll() • _ShellFile() • _ShellFolder() • _SingletonHWID() • _SingletonPID() • _Startup() • _StringCompact() • _StringIsValid() • _StringRegExpMetaCharacters() • _StringReplaceWholeWord() • _StringStripChars() • _Temperature() • _TrialPeriod() • _UKToUSDate()/_USToUKDate() • _WinAPI_Create_CTL_CODE() • _WinAPI_CreateGUID() • _WMIDateStringToDate()/_DateToWMIDateString() • Au3 script parsing • AutoIt Search • AutoIt3 Portable • AutoIt3WrapperToPragma • AutoItWinGetTitle()/AutoItWinSetTitle() • Coding • DirToHTML5 • FileInstallr • FileReadLastChars() • GeoIP database • GUI - Only Close Button • GUI Examples • GUICtrlDeleteImage() • GUICtrlGetBkColor() • GUICtrlGetStyle() • GUIEvents • GUIGetBkColor() • Int_Parse() & Int_TryParse() • IsISBN() • LockFile() • Mapping CtrlIDs • OOP in AutoIt • ParseHeadersToSciTE() • PasswordValid • PasteBin • Posts Per Day • PreExpand • Protect Globals • Queue() • Resource Update • ResourcesEx • SciTE Jump • Settings INI • SHELLHOOK • Shunting-Yard • Signature Creator • Stack() • Stopwatch() • StringAddLF()/StringStripLF() • StringEOLToCRLF() • VSCROLL • WM_COPYDATA • More Examples... Updated: 22/04/2018 Link to comment Share on other sites More sharing options...
llewxam Posted September 25, 2012 Share Posted September 25, 2012 Agreed, the convenience factor would be great. My projects: IP Scanner - Multi-threaded ping tool to scan your available networks for used and available IP addresses, shows ping times, resolves IPs in to host names, and allows individual IPs to be pinged. INFSniff - Great technicians tool - a tool which scans DriverPacks archives for INF files and parses out the HWIDs to a database file, and rapidly scans the local machine's HWIDs, searches the database for matches, and installs them. PPK3 (Persistent Process Killer V3) - Another for the techs - suppress running processes that you need to keep away, helpful when fighting spyware/viruses. Sync Tool - Folder sync tool with lots of real time information and several checking methods. USMT Front End - Front End for Microsoft's User State Migration Tool, including all files needed for USMT 3.01 and 4.01, 32 bit and 64 bit versions. Audit Tool - Computer audit tool to gather vital hardware, Windows, and Office information for IT managers and field techs. Capabilities include creating a customized site agent. CSV Viewer - Displays CSV files with automatic column sizing and font selection. Lines can also be copied to the clipboard for data extraction. MyDirStat - Lists number and size of files on a drive or specified path, allows for deletion within the app. 2048 Game - My version of 2048, fun tile game. Juice Lab - Ecigarette liquid making calculator. Data Protector - Secure notes to save sensitive information. VHD Footer - Add a footer to a forensic hard drive image to allow it to be mounted or used as a virtual machine hard drive. Find in File - Searches files containing a specified phrase. Link to comment Share on other sites More sharing options...
llewxam Posted September 25, 2012 Share Posted September 25, 2012 Sorry, this just occurred to me - the date preservation would be ideal if we could specify the flag to do Create, Modify, and Access through a BitAnd, just to cover all bases..... I'd be happy to put that together if you would like. Ian My projects: IP Scanner - Multi-threaded ping tool to scan your available networks for used and available IP addresses, shows ping times, resolves IPs in to host names, and allows individual IPs to be pinged. INFSniff - Great technicians tool - a tool which scans DriverPacks archives for INF files and parses out the HWIDs to a database file, and rapidly scans the local machine's HWIDs, searches the database for matches, and installs them. PPK3 (Persistent Process Killer V3) - Another for the techs - suppress running processes that you need to keep away, helpful when fighting spyware/viruses. Sync Tool - Folder sync tool with lots of real time information and several checking methods. USMT Front End - Front End for Microsoft's User State Migration Tool, including all files needed for USMT 3.01 and 4.01, 32 bit and 64 bit versions. Audit Tool - Computer audit tool to gather vital hardware, Windows, and Office information for IT managers and field techs. Capabilities include creating a customized site agent. CSV Viewer - Displays CSV files with automatic column sizing and font selection. Lines can also be copied to the clipboard for data extraction. MyDirStat - Lists number and size of files on a drive or specified path, allows for deletion within the app. 2048 Game - My version of 2048, fun tile game. Juice Lab - Ecigarette liquid making calculator. Data Protector - Secure notes to save sensitive information. VHD Footer - Add a footer to a forensic hard drive image to allow it to be mounted or used as a virtual machine hard drive. Find in File - Searches files containing a specified phrase. Link to comment Share on other sites More sharing options...
wraithdu Posted September 25, 2012 Author Share Posted September 25, 2012 I'll get to this tomorrow I think. I've been caught up the last few days with updating a couple of my PortableApps projects and puling the wool over my web host (more on that in the dev forum soon). Link to comment Share on other sites More sharing options...
wraithdu Posted September 26, 2012 Author Share Posted September 26, 2012 (edited) Please test this updated function. I've only rewritten _LargeFileCopy, not the other 3 yet. I reduced the default buffer size to 2M (same as my _SecureDelete UDF), added flags for copying attributes (including compression and encryption, supported only on NTFS destinations), and for each file time type. I want to optimize buffer creation and update the other 3 functions before updating the main UDF, but for now let me know how it goes. *snip* Edited September 27, 2012 by wraithdu Link to comment Share on other sites More sharing options...
llewxam Posted September 26, 2012 Share Posted September 26, 2012 Looking forward to testing, more was added than I thought! Looks GREAT, will beat it up later on. Ian My projects: IP Scanner - Multi-threaded ping tool to scan your available networks for used and available IP addresses, shows ping times, resolves IPs in to host names, and allows individual IPs to be pinged. INFSniff - Great technicians tool - a tool which scans DriverPacks archives for INF files and parses out the HWIDs to a database file, and rapidly scans the local machine's HWIDs, searches the database for matches, and installs them. PPK3 (Persistent Process Killer V3) - Another for the techs - suppress running processes that you need to keep away, helpful when fighting spyware/viruses. Sync Tool - Folder sync tool with lots of real time information and several checking methods. USMT Front End - Front End for Microsoft's User State Migration Tool, including all files needed for USMT 3.01 and 4.01, 32 bit and 64 bit versions. Audit Tool - Computer audit tool to gather vital hardware, Windows, and Office information for IT managers and field techs. Capabilities include creating a customized site agent. CSV Viewer - Displays CSV files with automatic column sizing and font selection. Lines can also be copied to the clipboard for data extraction. MyDirStat - Lists number and size of files on a drive or specified path, allows for deletion within the app. 2048 Game - My version of 2048, fun tile game. Juice Lab - Ecigarette liquid making calculator. Data Protector - Secure notes to save sensitive information. VHD Footer - Add a footer to a forensic hard drive image to allow it to be mounted or used as a virtual machine hard drive. Find in File - Searches files containing a specified phrase. Link to comment Share on other sites More sharing options...
wraithdu Posted September 27, 2012 Author Share Posted September 27, 2012 (edited) Here's the full rewrite (except the Raw functions, too much code for code tags, when I update the OP they will be there). I also added copying of Security Descriptors and Ownership (when possible and permitted by user rights). Please read the new information at the top of the UDF and test the hell out of it. If it passes, I'll update the OP soon. Thanks! *snip* Edited September 29, 2012 by wraithdu Link to comment Share on other sites More sharing options...
wraithdu Posted September 27, 2012 Author Share Posted September 27, 2012 (edited) I edited the above code once more to use my own time functions. It reduces the number of function calls to two, and can set all 3 times in one go. Edited September 27, 2012 by wraithdu Link to comment Share on other sites More sharing options...
wraithdu Posted September 28, 2012 Author Share Posted September 28, 2012 (edited) I've added a few more things for the next official version... got rid of the buffers global var in favor of a few small wrappers and a static var (did you know you still can't redim a static array? you need to use another func that takes the array as a byref parameter.), added an additional static buffer for file hashing, made sure buffers and admin checks are done only once or as few times as possible. Really trying to optimize here, I'm assuming this UDF will be used to copy lots of files in tight loops. That being said, it would be super awesome to get some functional results from my users, as well as some speed tests once the official revision is released. Edited September 29, 2012 by wraithdu Link to comment Share on other sites More sharing options...
llewxam Posted September 28, 2012 Share Posted September 28, 2012 LOL, this is probably rarely said, but slow down on the updates - since the time I wanted to update your UDF in my Sync tool you've updated it twice more! :D Just teasing, it is awesome to see you pushing it so hard, and much appreciated. I'm going to grab this update and put it in to my Sync tool right now and spend a few hours poking it. Actually, first I will do some transfers and record the performance of the older version from November 2011 that included my own timestamp preservation function. Thanks, stay tuned. Ian My projects: IP Scanner - Multi-threaded ping tool to scan your available networks for used and available IP addresses, shows ping times, resolves IPs in to host names, and allows individual IPs to be pinged. INFSniff - Great technicians tool - a tool which scans DriverPacks archives for INF files and parses out the HWIDs to a database file, and rapidly scans the local machine's HWIDs, searches the database for matches, and installs them. PPK3 (Persistent Process Killer V3) - Another for the techs - suppress running processes that you need to keep away, helpful when fighting spyware/viruses. Sync Tool - Folder sync tool with lots of real time information and several checking methods. USMT Front End - Front End for Microsoft's User State Migration Tool, including all files needed for USMT 3.01 and 4.01, 32 bit and 64 bit versions. Audit Tool - Computer audit tool to gather vital hardware, Windows, and Office information for IT managers and field techs. Capabilities include creating a customized site agent. CSV Viewer - Displays CSV files with automatic column sizing and font selection. Lines can also be copied to the clipboard for data extraction. MyDirStat - Lists number and size of files on a drive or specified path, allows for deletion within the app. 2048 Game - My version of 2048, fun tile game. Juice Lab - Ecigarette liquid making calculator. Data Protector - Secure notes to save sensitive information. VHD Footer - Add a footer to a forensic hard drive image to allow it to be mounted or used as a virtual machine hard drive. Find in File - Searches files containing a specified phrase. Link to comment Share on other sites More sharing options...
wraithdu Posted September 29, 2012 Author Share Posted September 29, 2012 (edited) Heh, well in that case I might as well post the final revision from today with the other performance enhancements. The functionality is the same, but I'm hoping the optimizations make a difference with higher numbers of consecutive transfers. I really appreciate the critical eye and testing! *snip* Edited October 1, 2012 by wraithdu 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