Aceguy Posted March 16, 2008 Share Posted March 16, 2008 (edited) .... New UPdate you no longer have to change your reigonal settings to match _datediff, code will change the date for you. expandcollapse popup#Region;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_Icon=..\Icon Entry_573.ico #EndRegion;**** Directives created by AutoIt3Wrapper_GUI **** #include <GuiListView.au3> #include <GuiImageList.au3> #include <GuiConstantsEx.au3> #include <GuiComboBox.au3> #include <Date.au3> #include<file.au3> #include<array.au3> If WinExists("My Backup V1.3") = 1 Then MsgBox(16, "Error!", "Already Running!!!" & @CRLF & "Not running another instance.") Exit EndIf $inifile = @MyDocumentsDir & "\Backup.ini" Global Const $HDN_FIRST = -300 Global Const $HDN_ITEMCHANGINGA = $HDN_FIRST - 0 Global Const $HDN_BEGINTRACKA = $HDN_FIRST - 6 Global $hListView, $ir, $yh, $_dir_copy, $ws_start Global $Gui, $GuiContext[2], $Tray[2] $tray_pop = False $day_year = @YDAY $min = @MIN Opt("GUIOnEventMode", 1) Opt("TrayOnEventMode", 1) Opt("TrayMenuMode", 1) $ty = IniRead($inifile, "winpos", 0, 'error') If $ty <> 'error' Then $ss3 = StringSplit($ty, "|") $x = $ss3[1] $y = $ss3[2] $yh = $ss3[4] Else $yh = 200 $x = 400 $y = 300 EndIf $Gui = GUICreate("My Backup V1.3", 500, $yh, $x, $y, $WS_SIZEBOX, $WS_EX_TOOLWINDOW) $GuiContext[0] = GUICtrlCreateContextMenu() $GuiContext[1] = GUICtrlCreateMenuItem("Send To Tray", $GuiContext[0]) GUICtrlSetOnEvent(-1, "HideShow") GUISetOnEvent($GUI_EVENT_CLOSE, "quit") $add_folder = GUICtrlCreateButton('', 10, 10, 40, 40, $BS_ICON) GUICtrlSetImage(-1, "shell32.dll", 46) GUICtrlSetOnEvent(-1, "add_folder") GUICtrlSetTip(-1, "Backup a Complete Folder") GUICtrlSetResizing(-1, $GUI_DOCKALL) $add_file = GUICtrlCreateButton('', 55, 10, 40, 40, $BS_ICON) GUICtrlSetImage(-1, "shell32.dll", 134) GUICtrlSetOnEvent(-1, "add_file") GUICtrlSetTip(-1, "Backup a Single File") GUICtrlSetResizing(-1, $GUI_DOCKALL) $output_foler = GUICtrlCreateButton('', 450, 10, 40, 40, $BS_ICON) GUICtrlSetImage(-1, "shell32.dll", 146) GUICtrlSetOnEvent(-1, "output_folder") GUICtrlSetResizing(-1, $GUI_DOCKALL) $backup_now = GUICtrlCreateButton('', 410, 10, 40, 40, $BS_ICON) GUICtrlSetTip(-1, "Right Click For more Options") GUICtrlSetImage(-1, "shell32.dll", 7) GUICtrlSetOnEvent(-1, "backup_now") GUICtrlSetResizing(-1, $GUI_DOCKALL) $b1 = GUICtrlCreateContextMenu($backup_now) $b2 = GUICtrlCreateMenuItem("Full - All Items", $b1) GUICtrlSetOnEvent(-1, "con_men") GUICtrlSetState(-1, $GUI_CHECKED) $b3 = GUICtrlCreateMenuItem("Partial - Only Marked With X", $b1) GUICtrlSetOnEvent(-1, "con_men2") $b4 = GUICtrlCreateMenuItem("", $b1) $b5 = GUICtrlCreateMenuItem("Start when Windows start", $b1) GUICtrlSetOnEvent(-1, "windows_start") $combo1 = GUICtrlCreateCombo('Please Select', 100, 10, 100, 25) GUICtrlSetData(-1, 'Daily|Weekly|Monthly') GUICtrlSetResizing(-1, $GUI_DOCKALL) $log = GUICtrlCreateLabel("Message Log", 210, 10, 175, 15, $SS_SUNKEN) GUICtrlSetBkColor(-1, 0xffffff) GUICtrlSetResizing(-1, $GUI_DOCKALL) $progress = GUICtrlCreateProgress(210, 30, 175, 10) GUICtrlSetColor($progress, 0x00FF00) GUICtrlSetBkColor($progress, 0x00ff00) GUICtrlSetCursor(-1, 7) GUICtrlSetResizing(-1, $GUI_DOCKALL) DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle(-1), "wstr", " ", "wstr", " ") GUICtrlSetStyle(-1, 1) $progress2 = GUICtrlCreateProgress(210, 40, 175, 10) GUICtrlSetColor($progress2, 0x00FF00) GUICtrlSetBkColor($progress2, 0x00ff00) GUICtrlSetCursor(-1, 7) GUICtrlSetResizing(-1, $GUI_DOCKALL) DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle(-1), "wstr", " ", "wstr", " ") GUICtrlSetStyle(-1, 1) $hListView = GUICtrlCreateListView("Name|Location|Sched|Comments|D|", 10, 55, 480, $yh - 80, BitOR($LVS_SHOWSELALWAYS, $LVS_REPORT, $LVS_NOSORTHEADER)) GUICtrlSetResizing($hListView, $GUI_DOCKBOTTOM + $GUI_DOCKTOP) _GUICtrlListView_SetExtendedListViewStyle($hListView, BitOR($LVS_EX_GRIDLINES, $LVS_EX_SUBITEMIMAGES, $LVS_EX_FULLROWSELECT, $LVS_EX_DOUBLEBUFFER, $LVS_EX_INFOTIP)) _GUICtrlListView_SetColumnWidth($hListView, 0, 75);name _GUICtrlListView_SetColumnWidth($hListView, 1, 215);location _GUICtrlListView_SetColumnWidth($hListView, 2, 50);schedule _GUICtrlListView_SetColumnWidth($hListView, 3, 90);comments _GUICtrlListView_SetColumnWidth($hListView, 4, 25);delete $hImage = _GUIImageList_Create(16, 16, 5, 5) _GUIImageList_AddIcon($hImage, "shell32.dll", 4);folder 0 _GUIImageList_AddIcon($hImage, "shell32.dll", 54);file 1 _GUIImageList_AddIcon($hImage, "shell32.dll", 31);bin 2 _GUIImageList_AddIcon($hImage, "shell32.dll", 21);tick 3 _GUIImageList_AddIcon($hImage, "shell32.dll", 131);cross 4 _GUICtrlListView_SetImageList($hListView, $hImage, 1) $Tray[1] = TrayCreateItem("Exit Daily Backup") TrayItemSetOnEvent(-1, "quit") TraySetOnEvent(-7, "HideShow") TraySetClick(16) TraySetState(1) $Tray[0] = 1 $iread = IniRead($inifile, "config", 0, 'error') If $iread = 'error' Then GUICtrlSetState($add_file, $gui_disable) GUICtrlSetState($add_folder, $gui_disable) GUICtrlSetState($backup_now, $gui_disable) GUICtrlSetState($combo1, $gui_disable) If @OSVersion = 'WIN_VISTA' Then MsgBox(4144, "Warning!!", "Windows VISTA Detected" & @CRLF & "To enable start when windows start" & @CRLF & "Run as Administartor and Disable UAC", 0) GUICtrlSetData($log, "Choose a Destination Folder First") EndIf $b_up = IniRead($inifile, "context", 0, 'Full') If $b_up = 'Full' Then con_men() Else con_men2() EndIf $ir = IniRead($inifile, "config", 0, 'Not Found') If $ir <> 'Not Found' Then GUICtrlSetTip($output_foler, $ir) Else GUICtrlSetTip($output_foler, "Default Output Directory") EndIf $is = IniRead($inifile, "config", 1, 'False') If $is = "True" Then GUICtrlSetState($b5, $GUI_CHECKED) $ws_start = True Else $ws_start = False EndIf load_settings() GUISetState(@SW_HIDE, $Gui) GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY") While 1 Sleep(1000) If $tray_pop = True And $min = @MIN - 2 Then TrayTip("OI YOU!!!", "My Backup Needs Your Attention", 15, 1) $min = @MIN EndIf $day_year2 = @YDAY If $day_year2 <> $day_year Then load_settings() $day_year = @YDAY EndIf WEnd ;------------------------------------------------------------------------------ Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam) Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView $hWndListView = $hListView If Not IsHWnd($hListView) Then $hWndListView = GUICtrlGetHandle($hListView) $tNMHDR = DllStructCreate($tagNMHDR, $ilParam) $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom")) $iIDFrom = DllStructGetData($tNMHDR, "IDFrom") $iCode = DllStructGetData($tNMHDR, "Code") Switch $hWndFrom Case $hWndListView Switch $iCode Case $NM_CLICK; Sent by a list-view control when the user clicks an item with the left mouse button Local $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam) $sel = DllStructGetData($tInfo, "SubItem") $row = DllStructGetData($tInfo, "Index") If $sel = 4 Then _GUICtrlListView_DeleteItemsSelected(GUICtrlGetHandle($hListView)) ElseIf $sel = 3 Then If _GUICtrlListView_GetItemImage($hListView, $row, $sel) = 3 Then _GUICtrlListView_SetItemImage($hListView, $row, 4, $sel) ElseIf _GUICtrlListView_GetItemImage($hListView, $row, $sel) = 4 Then _GUICtrlListView_SetItemImage($hListView, $row, 3, $sel) EndIf EndIf Case $LVN_GETINFOTIP, $LVN_GETINFOTIPA, $LVN_GETINFOTIPW ;Local $tInfo = DllStructCreate($tagNMLISTVIEW, $ilParam) EndSwitch EndSwitch Return $GUI_RUNDEFMSG EndFunc ;==>WM_NOTIFY Func add_folder() If GUICtrlRead($combo1) <> 'Please Select' Then $dir = FileSelectFolder("Choose a folder.", "", 2) If Not @error Then If Not IsDeclared("sInputBoxAnswer") Then Local $sInputBoxAnswer $sInputBoxAnswer = InputBox("Name.", "Enter name for you backup.!", "", " ", "-1", "120", "-1", "-1") Select Case @error = 0;OK - The string returned is valid $i = _GUICtrlListView_AddItem($hListView, $sInputBoxAnswer, 0);name _GUICtrlListView_AddSubItem($hListView, $i, $dir, 1, -1);location _GUICtrlListView_AddSubItem($hListView, $i, GUICtrlRead($combo1), 2, -1);sheduled _GUICtrlListView_AddSubItem($hListView, $i, 'Not Done', 3, 4);backup last done _GUICtrlListView_AddSubItem($hListView, $i, '', 4, 2);delete line Case @error = 1;The Cancel button was pushed Case @error = 3;The InputBox failed to open EndSelect EndIf Else GUICtrlSetData($log, "Please Choose a Backup Schedule") EndIf EndFunc ;==>add_folder Func add_file() If GUICtrlRead($combo1) <> 'Please Select' Then $dir = FileOpenDialog("Choose a file.", @MyDocumentsDir, "") If Not @error Then $sInputBoxAnswer = InputBox("Name.", "Enter name for you backup.!", "", " ", "-1", "120", "-1", "-1") Select Case @error = 0;OK - The string returned is valid $i = _GUICtrlListView_AddItem($hListView, $sInputBoxAnswer, 1);name _GUICtrlListView_AddSubItem($hListView, $i, $dir, 1);location _GUICtrlListView_AddSubItem($hListView, $i, GUICtrlRead($combo1), 2, -1);sheduled _GUICtrlListView_AddSubItem($hListView, $i, 'Not Done', 3, 4);backup last done _GUICtrlListView_AddSubItem($hListView, $i, '', 4, 2);delete line Case @error = 1;The Cancel button was pushed Case @error = 3;The InputBox failed to open EndSelect EndIf Else GUICtrlSetData($log, "Please Choose a Backup Schedule") EndIf EndFunc ;==>add_file Func output_folder() Local $dir = FileSelectFolder("Choose a folder.", '', 1 + 4) If Not @error Then If $dir <> IniRead($inifile, "config", 0, '') Then If Not IsDeclared("iMsgBoxAnswer") Then Local $iMsgBoxAnswer $iMsgBoxAnswer = MsgBox(52, "Check!!!", "You Backup Directory has been changed," & @CRLF & "or a new one has been created." & @CRLF & "Is this OK.?" & @CRLF) Select Case $iMsgBoxAnswer = 6;Yes $save = $dir DirCreate($dir) IniWrite($inifile, "config", 0, $dir) GUICtrlSetTip($output_foler, $dir) GUICtrlSetState($add_file, $GUI_ENABLE) GUICtrlSetState($add_folder, $GUI_ENABLE) GUICtrlSetState($backup_now, $GUI_ENABLE) GUICtrlSetState($combo1, $GUI_ENABLE) Case $iMsgBoxAnswer = 7;No MsgBox(64, "Nothing Changed", "Nothing Has Changed, Click Ok to Continue") EndSelect EndIf EndIf EndFunc ;==>output_folder Func quit() save() GUIDelete($Gui) Exit EndFunc ;==>quit Func load_settings() _GUICtrlListView_DeleteAllItems(GUICtrlGetHandle($hListView)) Sleep(500) $var = IniReadSection($inifile, "files") If Not @error = 1 Then For $c = 1 To $var[0][0] $ss = StringSplit($var[$c][1], "|") $i = _GUICtrlListView_AddItem($hListView, $ss[2], $ss[1]);name _GUICtrlListView_AddSubItem($hListView, $i, $ss[3], 1, -1);location _GUICtrlListView_AddSubItem($hListView, $i, $ss[4], 2, -1);sheduled $d_split_final = "" $d_split = StringSplit($ss[5], "/") If StringLen($d_split[1]) = 2 Then _ArrayReverse($d_split, 1) For $d_spl = 1 To $d_split[0] $d_split_final &= $d_split[$d_spl] & "/" Next $ss[5] = StringTrimRight($d_split_final, 1) $dd = _DateDiff('d', $ss[5] & " 00:00:00", _NowCalc()) $d_split_final = "" $d_split = StringSplit($ss[5], "/") _ArrayReverse($d_split, 1) For $d_spl = 1 To $d_split[0] $d_split_final &= $d_split[$d_spl] & "/" Next $ss[5] = StringTrimRight($d_split_final, 1) Else $dd = _DateDiff('d', $ss[5] & " 00:00:00", _NowCalc()) $d_split = StringSplit($ss[5], "/") _ArrayReverse($d_split, 1) For $d_spl = 1 To $d_split[0] $d_split_final &= $d_split[$d_spl] & "/" Next $ss[5] = StringTrimRight($d_split_final, 1) EndIf If $ss[5] <> 'Not Done' Then If $ss[4] = 'Daily' And $dd > 0 Then $tray_pop = True _GUICtrlListView_AddSubItem($hListView, $i, $ss[5], 3, 4);backup last done ElseIf $ss[4] = 'Weekly' And $dd > 6 Then _GUICtrlListView_AddSubItem($hListView, $i, $ss[5], 3, 4) $tray_pop = True ElseIf $ss[4] = 'Monthly' And $dd > 30 Then _GUICtrlListView_AddSubItem($hListView, $i, $ss[5], 3, 4) $tray_pop = True Else _GUICtrlListView_AddSubItem($hListView, $i, $ss[5], 3, 3) EndIf Else _GUICtrlListView_AddSubItem($hListView, $i, $ss[5], 3, 4) $tray_pop = True EndIf _GUICtrlListView_AddSubItem($hListView, $i, '', 4, 2);delete line Next If $tray_pop = True Then TrayTip("OI YOU!!!", "My Backup Needs Your Attention", 15, 1) EndIf EndFunc ;==>load_settings Func backup_now() ;_GuiCtrlListView_SetItemState ($hListView, 0, $LVIS_selected, $LVIS_selected) ;_GuiCtrlListView_SetItemSelected ($hListView,0) GUICtrlSetImage($backup_now, 'shell32.dll', 200) $tray_pop = False GUICtrlSetData($log, "WORKING!!!!") GUICtrlSetBkColor($progress, 0xFF0000) GUICtrlSetData($progress, 0) $t = _GUICtrlListView_GetItemCount($hListView) - 1 For $xct = 0 To $t _GUICtrlListView_SetItemSelected($hListView, $xct, 1) If $xct > 0 Then _GUICtrlListView_SetItemSelected($hListView, $xct - 1, 0) EndIf ;---------------Partial-------------------------------------------- If _GUICtrlListView_GetItemImage($hListView, $xct, 3) = 4 Then If _GUICtrlListView_GetItemImage($hListView, $xct, 0) = 0 Then $ss2 = StringSplit(_GUICtrlListView_GetItemText($hListView, $xct, 1), "\") GUICtrlSetBkColor($progress2, 0xFF0000) GUICtrlSetData($progress2, 0) _DirCopy(_GUICtrlListView_GetItemText($hListView, $xct, 1), $ir & "\" & $ss2[$ss2[0]], 1) GUICtrlSetBkColor($progress2, 0x00ff00) If $_dir_copy = 0 Then _GUICtrlListView_SetItemImage($hListView, $xct, 3, 3) _GUICtrlListView_SetItemText($hListView, $xct, _NowDate(), 3) Else _GUICtrlListView_SetItemText($hListView, $xct, "Failed", 3) EndIf Else If FileCopy(_GUICtrlListView_GetItemText($hListView, $xct, 1), $ir, 1) = 1 Then _GUICtrlListView_SetItemImage($hListView, $xct, 3, 3) _GUICtrlListView_SetItemText($hListView, $xct, _NowDate(), 3) Else _GUICtrlListView_SetItemText($hListView, $xct, "Failed", 3) EndIf EndIf ;-------------------------------FULL-------------------------------------- ElseIf _GUICtrlListView_GetItemImage($hListView, $xct, 3) = 3 And $b_up = 'Full' Then If _GUICtrlListView_GetItemImage($hListView, $xct, 0) = 0 Then $ss2 = StringSplit(_GUICtrlListView_GetItemText($hListView, $xct, 1), "\") GUICtrlSetBkColor($progress2, 0xFF0000) GUICtrlSetData($progress2, 0) _DirCopy(_GUICtrlListView_GetItemText($hListView, $xct, 1), $ir & "\" & $ss2[$ss2[0]], 1) GUICtrlSetBkColor($progress2, 0x00ff00) If $_dir_copy = 0 Then _GUICtrlListView_SetItemImage($hListView, $xct, 3, 3) _GUICtrlListView_SetItemText($hListView, $xct, _NowDate(), 3) Else _GUICtrlListView_SetItemText($hListView, $xct, "Failed", 3) EndIf Else If FileCopy(_GUICtrlListView_GetItemText($hListView, $xct, 1), $ir, 1) = 1 Then _GUICtrlListView_SetItemImage($hListView, $xct, 3, 3) _GUICtrlListView_SetItemText($hListView, $xct, _NowDate(), 3) Else _GUICtrlListView_SetItemText($hListView, $xct, "Failed", 3) EndIf EndIf EndIf GUICtrlSetData($progress, (($xct + 1) / ($t + 1)) * 100) Sleep(100) If $xct = $t Then _GUICtrlListView_SetItemSelected($hListView, $xct, 0) EndIf Next GUICtrlSetColor($progress, 0x00FF00) GUICtrlSetData($log, "Done.") GUICtrlSetImage($backup_now, "shell32.dll", 7) save() EndFunc ;==>backup_now Func HideShow() If $Tray[0] = 0 Then $Tray[0] = 1 GUISetState(@SW_HIDE, $Gui) TraySetToolTip("Left Click to Show/Hide Window") ElseIf $Tray[0] = 1 Then $Tray[0] = 0 GUISetState(@SW_SHOW, $Gui) TraySetToolTip("Left Click to Show/Hide Window") EndIf EndFunc ;==>HideShow Func con_men() GUICtrlSetState($b2, $GUI_CHECKED) GUICtrlSetState($b3, $GUI_UNCHECKED) $b_up = 'Full' IniWrite($inifile, "context", 0, 'Full') EndFunc ;==>con_men Func con_men2() GUICtrlSetState($b2, $GUI_UNCHECKED) GUICtrlSetState($b3, $GUI_CHECKED) $b_up = 'Part' IniWrite($inifile, "context", 0, 'Part') EndFunc ;==>con_men2 Func windows_start() If GUICtrlRead($b5) = 68 Then $ws_start = True GUICtrlSetState($b5, $GUI_CHECKED) $a = RegRead("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "Daily Backupv1_3b") ;if it doesn't write it If @error = -1 Then ConsoleWrite("attempting Regwrite " & $a & @LF) If RegWrite("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "Daily Backupv1_3b", "REG_SZ", @ScriptDir & "\Daily Backupv1_3b.exe") <> 1 Then If @error = 1 Then MsgBox(0, "Error", "Unable to save to requested key", 2) ElseIf @error = 2 Then MsgBox(0, "Error", "unable to save main key.", 2) ElseIf @error = 3 Then MsgBox("Error", "Unable to remote connect to the registry", 2) ElseIf @error = -1 Then MsgBox("Error", "Unable to save requested value", 2) ElseIf @error = -2 Then MsgBox("Error", "Value type not supported,", 2) EndIf EndIf EndIf Else $ws_start = False GUICtrlSetState($b5, $GUI_UNCHECKED) ConsoleWrite("Attempting reg delete" & @LF) If RegDelete("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "Daily Backupv1_3b") <> 1 Then If @error = 1 Then MsgBox(0, "Error", "Unable to open requested key", 2) ElseIf @error = 2 Then MsgBox(0, "Error", " deleting key/value.", 2) ElseIf @error = 3 Then MsgBox("Error", "Unable to remote connect to the registry", 2) ElseIf @error = -1 Then MsgBox("Error", "Unable to delete requested value", 2) ElseIf @error = -2 Then MsgBox("Error", "Unable to delete requested key/value", 2) EndIf EndIf EndIf IniWrite($inifile, "config", 1, $ws_start) EndFunc ;==>windows_start Func _DirCopy($iSource, $iDest, $flag = 1);$flag = 1 - Overwrite files and folders $_dir_copy = 0 Dim $aFiles[1] Local $iFirstFile, $iNextFile, $iFullFile, $iRec = '' Local $iFirstFile = FileFindFirstFile($iSource & "\*.*") If @error Then Return While 1 $iNextFile = FileFindNextFile($iFirstFile) If @error Then Local $iPercent, $iDestDir, $oFile, $oFolder, $i $oFile = 9 $oFolder = 1 If Not FileExists($iDest) Then DirCreate($iDest) For $i = 1 To $aFiles[0] $iPercent = Round($i / $aFiles[0] * 100, 2) GUICtrlSetData($progress2, $iPercent) If StringInStr(FileGetAttrib($aFiles[$i]), "D") Then $iDestDir = $iDest & "\" & StringRegExpReplace($aFiles[$i], "^.*\\", "") If Not FileExists($iDestDir) Then DirCreate($iDestDir) If DirCopy($aFiles[$i], $iDestDir, $oFolder) <> 1 Then $_dir_copy += 1 Else If FileCopy($aFiles[$i], $iDest, $oFile) <> 1 Then $_dir_copy += 1 EndIf Next ExitLoop EndIf $iFullFile = $iSource & "\" & $iNextFile $aFiles[0] += 1 ReDim $aFiles[$aFiles[0] + 1] $aFiles[$aFiles[0]] = $iFullFile WEnd FileClose($iFirstFile) EndFunc ;==>_DirCopy Func save() $ct = _GUICtrlListView_GetItemCount($hListView) If $ct > 0 Then IniDelete($inifile, "files") For $x = 0 To $ct - 1 IniWrite($inifile, "files", $x, _GUICtrlListView_GetItemImage($hListView, $x) & "|" & _ _GUICtrlListView_GetItemText($hListView, $x, 0) & "|" & _ _GUICtrlListView_GetItemText($hListView, $x, 1) & "|" & _ _GUICtrlListView_GetItemText($hListView, $x, 2) & "|" & _ _GUICtrlListView_GetItemText($hListView, $x, 3)) Next Else IniDelete($inifile, "files") EndIf IniWrite($inifile, "config", 1, $ws_start) $win_pos = WinGetPos("My Backup V1.3") IniWrite($inifile, "winpos", 0, Round($win_pos[0], -1) & "|" & Round($win_pos[1], -1) & "|" & '500' & "|" & Round($win_pos[3] - 10, -1)) EndFunc ;==>save Edited April 16, 2008 by Aceguy [u]My Projects.[/u]Launcher - not just for games & Apps (Mp3's & Network Files)Mp3 File RenamerMy File Backup UtilityFFXI - Realtime to Vana time Clock Link to comment Share on other sites More sharing options...
kniteman Posted March 17, 2008 Share Posted March 17, 2008 **** THIS PROGRAM IS ADDED TO THE REGISTRY *****You have been warnedThanks for the warning,By the way, is the app set for any specific version of Windows? Which did you use? i.e. XP, Server 2003, VISTA, Win 98 ME <grin>I like to have as much info as I can before I jump into the water. Link to comment Share on other sites More sharing options...
Aceguy Posted March 17, 2008 Author Share Posted March 17, 2008 Only Tested on XP pro. [u]My Projects.[/u]Launcher - not just for games & Apps (Mp3's & Network Files)Mp3 File RenamerMy File Backup UtilityFFXI - Realtime to Vana time Clock Link to comment Share on other sites More sharing options...
Aceguy Posted March 19, 2008 Author Share Posted March 19, 2008 Can confirm it works on Vista too. [u]My Projects.[/u]Launcher - not just for games & Apps (Mp3's & Network Files)Mp3 File RenamerMy File Backup UtilityFFXI - Realtime to Vana time Clock Link to comment Share on other sites More sharing options...
gseller Posted March 31, 2008 Share Posted March 31, 2008 Nice!! Really good way to keep a redundant backup of autoit or whatever files... Thanks for sharing it! Link to comment Share on other sites More sharing options...
Aceguy Posted May 10, 2008 Author Share Posted May 10, 2008 another update. expandcollapse popup#Region;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_Icon=..\Icon Entry_573.ico #EndRegion;**** Directives created by AutoIt3Wrapper_GUI **** #include <GuiListView.au3> #include <GuiImageList.au3> #include <GuiConstantsEx.au3> #include <GuiComboBox.au3> #include <Date.au3> #include<file.au3> #include<array.au3> If WinExists("My Backup V1.3") = 1 Then MsgBox(16, "Error!", "Already Running!!!" & @CRLF & "Not running another instance.") Exit EndIf $inifile = @MyDocumentsDir & "\Backup.ini" Global Const $HDN_FIRST = -300 Global Const $HDN_ITEMCHANGINGA = $HDN_FIRST - 0 Global Const $HDN_BEGINTRACKA = $HDN_FIRST - 6 Global $hListView, $ir, $yh, $_dir_copy, $ws_start Global $Gui, $GuiContext[2], $Tray[2] $tray_pop = False $day_year = @YDAY $min = @MIN Opt("GUIOnEventMode", 1) Opt("TrayOnEventMode", 1) Opt("TrayMenuMode", 1) $ty = IniRead($inifile, "winpos", 0, 'error') If $ty <> 'error' Then $ss3 = StringSplit($ty, "|") $x = $ss3[1] $y = $ss3[2] $yh = $ss3[4] Else $yh = 200 $x = 400 $y = 300 EndIf $Gui = GUICreate("My Backup V1.3", 500, $yh, $x, $y, $WS_SIZEBOX, $WS_EX_TOOLWINDOW) $GuiContext[0] = GUICtrlCreateContextMenu() $GuiContext[1] = GUICtrlCreateMenuItem("Send To Tray", $GuiContext[0]) GUICtrlSetOnEvent(-1, "HideShow") GUISetOnEvent($GUI_EVENT_CLOSE, "quit") $add_folder = GUICtrlCreateButton('', 10, 10, 40, 40, $BS_ICON) GUICtrlSetImage(-1, "shell32.dll", 46) GUICtrlSetOnEvent(-1, "add_folder") GUICtrlSetTip(-1, "Backup a Complete Folder") GUICtrlSetResizing(-1, $GUI_DOCKALL) $add_file = GUICtrlCreateButton('', 55, 10, 40, 40, $BS_ICON) GUICtrlSetImage(-1, "shell32.dll", 134) GUICtrlSetOnEvent(-1, "add_file") GUICtrlSetTip(-1, "Backup a Single File") GUICtrlSetResizing(-1, $GUI_DOCKALL) $output_foler = GUICtrlCreateButton('', 450, 10, 40, 40, $BS_ICON) GUICtrlSetImage(-1, "shell32.dll", 146) GUICtrlSetOnEvent(-1, "output_folder") GUICtrlSetResizing(-1, $GUI_DOCKALL) $backup_now = GUICtrlCreateButton('', 410, 10, 40, 40, $BS_ICON) GUICtrlSetTip(-1, "Right Click For more Options") GUICtrlSetImage(-1, "shell32.dll", 7) GUICtrlSetOnEvent(-1, "backup_now") GUICtrlSetResizing(-1, $GUI_DOCKALL) $b1 = GUICtrlCreateContextMenu($backup_now) $b2 = GUICtrlCreateMenuItem("Full - All Items", $b1) GUICtrlSetOnEvent(-1, "con_men") GUICtrlSetState(-1, $GUI_CHECKED) $b3 = GUICtrlCreateMenuItem("Partial - Only Marked With X", $b1) GUICtrlSetOnEvent(-1, "con_men2") $b4 = GUICtrlCreateMenuItem("", $b1) $b5 = GUICtrlCreateMenuItem("Start when Windows start", $b1) GUICtrlSetOnEvent(-1, "windows_start") $combo1 = GUICtrlCreateCombo('Please Select', 100, 10, 100, 25) GUICtrlSetData(-1, 'Daily|Weekly|Monthly') GUICtrlSetResizing(-1, $GUI_DOCKALL) $log = GUICtrlCreateLabel("Message Log", 210, 10, 175, 15, $SS_SUNKEN) GUICtrlSetBkColor(-1, 0xffffff) GUICtrlSetResizing(-1, $GUI_DOCKALL) $progress = GUICtrlCreateProgress(210, 30, 175, 10) GUICtrlSetColor($progress, 0x00FF00) GUICtrlSetBkColor($progress, 0x00ff00) GUICtrlSetCursor(-1, 7) GUICtrlSetResizing(-1, $GUI_DOCKALL) DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle(-1), "wstr", " ", "wstr", " ") GUICtrlSetStyle(-1, 1) $progress2 = GUICtrlCreateProgress(210, 40, 175, 10) GUICtrlSetColor($progress2, 0x00FF00) GUICtrlSetBkColor($progress2, 0x00ff00) GUICtrlSetCursor(-1, 7) GUICtrlSetResizing(-1, $GUI_DOCKALL) DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle(-1), "wstr", " ", "wstr", " ") GUICtrlSetStyle(-1, 1) $hListView = GUICtrlCreateListView("Name|Location|Sched|Comments|D|", 10, 55, 480, $yh - 80, BitOR($LVS_SHOWSELALWAYS, $LVS_REPORT, $LVS_NOSORTHEADER)) GUICtrlSetResizing($hListView, $GUI_DOCKBOTTOM + $GUI_DOCKTOP) _GUICtrlListView_SetExtendedListViewStyle($hListView, BitOR($LVS_EX_GRIDLINES, $LVS_EX_SUBITEMIMAGES, $LVS_EX_FULLROWSELECT, $LVS_EX_DOUBLEBUFFER, $LVS_EX_INFOTIP)) _GUICtrlListView_SetColumnWidth($hListView, 0, 75);name _GUICtrlListView_SetColumnWidth($hListView, 1, 215);location _GUICtrlListView_SetColumnWidth($hListView, 2, 50);schedule _GUICtrlListView_SetColumnWidth($hListView, 3, 90);comments _GUICtrlListView_SetColumnWidth($hListView, 4, 25);delete $hImage = _GUIImageList_Create(16, 16, 5, 5) _GUIImageList_AddIcon($hImage, "shell32.dll", 4);folder 0 _GUIImageList_AddIcon($hImage, "shell32.dll", 54);file 1 _GUIImageList_AddIcon($hImage, "shell32.dll", 31);bin 2 _GUIImageList_AddIcon($hImage, "shell32.dll", 21);tick 3 _GUIImageList_AddIcon($hImage, "shell32.dll", 131);cross 4 _GUICtrlListView_SetImageList($hListView, $hImage, 1) $Tray[1] = TrayCreateItem("Exit Daily Backup") TrayItemSetOnEvent(-1, "quit") TraySetOnEvent(-7, "HideShow") TraySetClick(16) TraySetState(1) $Tray[0] = 1 $iread = IniRead($inifile, "config", 0, 'error') If $iread = 'error' Then GUICtrlSetState($add_file, $gui_disable) GUICtrlSetState($add_folder, $gui_disable) GUICtrlSetState($backup_now, $gui_disable) GUICtrlSetState($combo1, $gui_disable) If @OSVersion = 'WIN_VISTA' Then MsgBox(4144, "Warning!!", "Windows VISTA Detected" & @CRLF & "To enable start when windows start" & @CRLF & "Run as Administartor and Disable UAC", 0) GUICtrlSetData($log, "Choose a Destination Folder First") EndIf $b_up = IniRead($inifile, "context", 0, 'Full') If $b_up = 'Full' Then con_men() Else con_men2() EndIf $ir = IniRead($inifile, "config", 0, 'Not Found') If $ir <> 'Not Found' Then GUICtrlSetTip($output_foler, $ir) Else GUICtrlSetTip($output_foler, "Default Output Directory") EndIf $is = IniRead($inifile, "config", 1, 'False') If $is = "True" Then GUICtrlSetState($b5, $GUI_CHECKED) $ws_start = True Else $ws_start = False EndIf load_settings() GUISetState(@SW_HIDE, $Gui) GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY") While 1 Sleep(1000) If $tray_pop = True And $min = @MIN - 2 Then $checked=0 for $rt=1 to _GUICtrlListView_GetItemCount($hListView) if _GUICtrlListView_GetItemImage($hListView,$rt,3) = 4 Then $checked+=1 Next TrayTip("OI YOU!!!", "There are "&$checked&" Items that needs you attention.", 15, 1) $min = @MIN EndIf $day_year2 = @YDAY If $day_year2 <> $day_year Then load_settings() $day_year = @YDAY EndIf WEnd ;------------------------------------------------------------------------------ Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam) Local $hWndFrom, $iIDFrom, $iCode, $tNMHDR, $hWndListView $hWndListView = $hListView If Not IsHWnd($hListView) Then $hWndListView = GUICtrlGetHandle($hListView) $tNMHDR = DllStructCreate($tagNMHDR, $ilParam) $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom")) $iIDFrom = DllStructGetData($tNMHDR, "IDFrom") $iCode = DllStructGetData($tNMHDR, "Code") Switch $hWndFrom Case $hWndListView Switch $iCode Case $NM_CLICK; Sent by a list-view control when the user clicks an item with the left mouse button Local $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam) $sel = DllStructGetData($tInfo, "SubItem") $row = DllStructGetData($tInfo, "Index") If $sel = 4 Then _GUICtrlListView_DeleteItemsSelected(GUICtrlGetHandle($hListView)) ElseIf $sel = 3 Then If _GUICtrlListView_GetItemImage($hListView, $row, $sel) = 3 Then _GUICtrlListView_SetItemImage($hListView, $row, 4, $sel) ElseIf _GUICtrlListView_GetItemImage($hListView, $row, $sel) = 4 Then _GUICtrlListView_SetItemImage($hListView, $row, 3, $sel) EndIf EndIf Case $LVN_GETINFOTIP, $LVN_GETINFOTIPA, $LVN_GETINFOTIPW ;Local $tInfo = DllStructCreate($tagNMLISTVIEW, $ilParam) EndSwitch EndSwitch Return $GUI_RUNDEFMSG EndFunc ;==>WM_NOTIFY Func add_folder() If GUICtrlRead($combo1) <> 'Please Select' Then $dir = FileSelectFolder("Choose a folder.", "", 2) If Not @error Then If Not IsDeclared("sInputBoxAnswer") Then Local $sInputBoxAnswer $sInputBoxAnswer = InputBox("Name.", "Enter name for you backup.!", "", " ", "-1", "120", "-1", "-1") Select Case @error = 0;OK - The string returned is valid $i = _GUICtrlListView_AddItem($hListView, $sInputBoxAnswer, 0);name _GUICtrlListView_AddSubItem($hListView, $i, $dir, 1, -1);location _GUICtrlListView_AddSubItem($hListView, $i, GUICtrlRead($combo1), 2, -1);sheduled _GUICtrlListView_AddSubItem($hListView, $i, 'Not Done', 3, 4);backup last done _GUICtrlListView_AddSubItem($hListView, $i, '', 4, 2);delete line Case @error = 1;The Cancel button was pushed Case @error = 3;The InputBox failed to open EndSelect EndIf Else GUICtrlSetData($log, "Please Choose a Backup Schedule") EndIf EndFunc ;==>add_folder Func add_file() If GUICtrlRead($combo1) <> 'Please Select' Then $dir = FileOpenDialog("Choose a file.", @MyDocumentsDir, "") If Not @error Then $sInputBoxAnswer = InputBox("Name.", "Enter name for you backup.!", "", " ", "-1", "120", "-1", "-1") Select Case @error = 0;OK - The string returned is valid $i = _GUICtrlListView_AddItem($hListView, $sInputBoxAnswer, 1);name _GUICtrlListView_AddSubItem($hListView, $i, $dir, 1);location _GUICtrlListView_AddSubItem($hListView, $i, GUICtrlRead($combo1), 2, -1);sheduled _GUICtrlListView_AddSubItem($hListView, $i, 'Not Done', 3, 4);backup last done _GUICtrlListView_AddSubItem($hListView, $i, '', 4, 2);delete line Case @error = 1;The Cancel button was pushed Case @error = 3;The InputBox failed to open EndSelect EndIf Else GUICtrlSetData($log, "Please Choose a Backup Schedule") EndIf EndFunc ;==>add_file Func output_folder() Local $dir = FileSelectFolder("Choose a folder.", '', 1 + 4) If Not @error Then If $dir <> IniRead($inifile, "config", 0, '') Then If Not IsDeclared("iMsgBoxAnswer") Then Local $iMsgBoxAnswer $iMsgBoxAnswer = MsgBox(52, "Check!!!", "You Backup Directory has been changed," & @CRLF & "or a new one has been created." & @CRLF & "Is this OK.?" & @CRLF) Select Case $iMsgBoxAnswer = 6;Yes $save = $dir DirCreate($dir) IniWrite($inifile, "config", 0, $dir) GUICtrlSetTip($output_foler, $dir) GUICtrlSetState($add_file, $GUI_ENABLE) GUICtrlSetState($add_folder, $GUI_ENABLE) GUICtrlSetState($backup_now, $GUI_ENABLE) GUICtrlSetState($combo1, $GUI_ENABLE) Case $iMsgBoxAnswer = 7;No MsgBox(64, "Nothing Changed", "Nothing Has Changed, Click Ok to Continue") EndSelect EndIf EndIf EndFunc ;==>output_folder Func quit() save() GUIDelete($Gui) Exit EndFunc ;==>quit Func load_settings() _GUICtrlListView_DeleteAllItems(GUICtrlGetHandle($hListView)) Sleep(500) $var = IniReadSection($inifile, "files") If Not @error = 1 Then For $c = 1 To $var[0][0] $ss = StringSplit($var[$c][1], "|") $i = _GUICtrlListView_AddItem($hListView, $ss[2], $ss[1]);name _GUICtrlListView_AddSubItem($hListView, $i, $ss[3], 1, -1);location _GUICtrlListView_AddSubItem($hListView, $i, $ss[4], 2, -1);sheduled $d_split_final = "" $d_split = StringSplit($ss[5], "/") If StringLen($d_split[1]) = 2 Then _ArrayReverse($d_split, 1) For $d_spl = 1 To $d_split[0] $d_split_final &= $d_split[$d_spl] & "/" Next $ss[5] = StringTrimRight($d_split_final, 1) $dd = _DateDiff('d', $ss[5] & " 00:00:00", _NowCalc()) $d_split_final = "" $d_split = StringSplit($ss[5], "/") _ArrayReverse($d_split, 1) For $d_spl = 1 To $d_split[0] $d_split_final &= $d_split[$d_spl] & "/" Next $ss[5] = StringTrimRight($d_split_final, 1) Else $dd = _DateDiff('d', $ss[5] & " 00:00:00", _NowCalc()) $d_split = StringSplit($ss[5], "/") _ArrayReverse($d_split, 1) For $d_spl = 1 To $d_split[0] $d_split_final &= $d_split[$d_spl] & "/" Next $ss[5] = StringTrimRight($d_split_final, 1) EndIf If $ss[5] <> 'Not Done' Then If $ss[4] = 'Daily' And $dd > 0 Then $tray_pop = True _GUICtrlListView_AddSubItem($hListView, $i, $ss[5], 3, 4);backup last done ElseIf $ss[4] = 'Weekly' And $dd > 6 Then _GUICtrlListView_AddSubItem($hListView, $i, $ss[5], 3, 4) $tray_pop = True ElseIf $ss[4] = 'Monthly' And $dd > 30 Then _GUICtrlListView_AddSubItem($hListView, $i, $ss[5], 3, 4) $tray_pop = True Else _GUICtrlListView_AddSubItem($hListView, $i, $ss[5], 3, 3) EndIf Else _GUICtrlListView_AddSubItem($hListView, $i, $ss[5], 3, 4) $tray_pop = True EndIf _GUICtrlListView_AddSubItem($hListView, $i, '', 4, 2);delete line Next If $tray_pop = True Then $checked=0 for $rt=1 to _GUICtrlListView_GetItemCount($hListView) if _GUICtrlListView_GetItemImage($hListView,$rt,3) = 4 Then $checked+=1 Next TrayTip("OI YOU!!!", "There are "&$checked&" Items that needs you attention.", 15, 1) EndIf EndIf EndFunc ;==>load_settings Func backup_now() ;_GuiCtrlListView_SetItemState ($hListView, 0, $LVIS_selected, $LVIS_selected) ;_GuiCtrlListView_SetItemSelected ($hListView,0) GUICtrlSetImage($backup_now, 'shell32.dll', 200) $tray_pop = False GUICtrlSetData($log, "WORKING!!!!") GUICtrlSetBkColor($progress, 0xFF0000) GUICtrlSetData($progress, 0) $t = _GUICtrlListView_GetItemCount($hListView) - 1 For $xct = 0 To $t _GUICtrlListView_SetItemSelected($hListView, $xct, 1) If $xct > 0 Then _GUICtrlListView_SetItemSelected($hListView, $xct - 1, 0) EndIf ;---------------Partial-------------------------------------------- If _GUICtrlListView_GetItemImage($hListView, $xct, 3) = 4 Then If _GUICtrlListView_GetItemImage($hListView, $xct, 0) = 0 Then $ss2 = StringSplit(_GUICtrlListView_GetItemText($hListView, $xct, 1), "\") GUICtrlSetBkColor($progress2, 0xFF0000) GUICtrlSetData($progress2, 0) _DirCopy(_GUICtrlListView_GetItemText($hListView, $xct, 1), $ir & "\" & $ss2[$ss2[0]], 1) GUICtrlSetBkColor($progress2, 0x00ff00) If $_dir_copy = 0 Then _GUICtrlListView_SetItemImage($hListView, $xct, 3, 3) _GUICtrlListView_SetItemText($hListView, $xct, _NowDate(), 3) Else _GUICtrlListView_SetItemText($hListView, $xct, "Failed", 3) EndIf Else If FileCopy(_GUICtrlListView_GetItemText($hListView, $xct, 1), $ir, 1) = 1 Then _GUICtrlListView_SetItemImage($hListView, $xct, 3, 3) _GUICtrlListView_SetItemText($hListView, $xct, _NowDate(), 3) Else _GUICtrlListView_SetItemText($hListView, $xct, "Failed", 3) EndIf EndIf ;-------------------------------FULL-------------------------------------- ElseIf _GUICtrlListView_GetItemImage($hListView, $xct, 3) = 3 And $b_up = 'Full' Then If _GUICtrlListView_GetItemImage($hListView, $xct, 0) = 0 Then $ss2 = StringSplit(_GUICtrlListView_GetItemText($hListView, $xct, 1), "\") GUICtrlSetBkColor($progress2, 0xFF0000) GUICtrlSetData($progress2, 0) _DirCopy(_GUICtrlListView_GetItemText($hListView, $xct, 1), $ir & "\" & $ss2[$ss2[0]], 1) GUICtrlSetBkColor($progress2, 0x00ff00) If $_dir_copy = 0 Then _GUICtrlListView_SetItemImage($hListView, $xct, 3, 3) _GUICtrlListView_SetItemText($hListView, $xct, _NowDate(), 3) Else _GUICtrlListView_SetItemText($hListView, $xct, "Failed", 3) EndIf Else If FileCopy(_GUICtrlListView_GetItemText($hListView, $xct, 1), $ir, 1) = 1 Then _GUICtrlListView_SetItemImage($hListView, $xct, 3, 3) _GUICtrlListView_SetItemText($hListView, $xct, _NowDate(), 3) Else _GUICtrlListView_SetItemText($hListView, $xct, "Failed", 3) EndIf EndIf EndIf GUICtrlSetData($progress, (($xct + 1) / ($t + 1)) * 100) Sleep(100) If $xct = $t Then _GUICtrlListView_SetItemSelected($hListView, $xct, 0) EndIf Next GUICtrlSetColor($progress, 0x00FF00) GUICtrlSetData($log, "Done.") GUICtrlSetImage($backup_now, "shell32.dll", 7) save() EndFunc ;==>backup_now Func HideShow() If $Tray[0] = 0 Then $Tray[0] = 1 GUISetState(@SW_HIDE, $Gui) TraySetToolTip("Left Click to Show/Hide Window") ElseIf $Tray[0] = 1 Then $Tray[0] = 0 GUISetState(@SW_SHOW, $Gui) TraySetToolTip("Left Click to Show/Hide Window") EndIf EndFunc ;==>HideShow Func con_men() GUICtrlSetState($b2, $GUI_CHECKED) GUICtrlSetState($b3, $GUI_UNCHECKED) $b_up = 'Full' IniWrite($inifile, "context", 0, 'Full') EndFunc ;==>con_men Func con_men2() GUICtrlSetState($b2, $GUI_UNCHECKED) GUICtrlSetState($b3, $GUI_CHECKED) $b_up = 'Part' IniWrite($inifile, "context", 0, 'Part') EndFunc ;==>con_men2 Func windows_start() If GUICtrlRead($b5) = 68 Then $ws_start = True GUICtrlSetState($b5, $GUI_CHECKED) $a = RegRead("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "Daily Backupv1_3b") ;if it doesn't write it If @error = -1 Then ConsoleWrite("attempting Regwrite " & $a & @LF) If RegWrite("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "Daily Backupv1_3b", "REG_SZ", @ScriptDir & "\Daily Backupv1_3b.exe") <> 1 Then If @error = 1 Then MsgBox(0, "Error", "Unable to save to requested key", 2) ElseIf @error = 2 Then MsgBox(0, "Error", "unable to save main key.", 2) ElseIf @error = 3 Then MsgBox("Error", "Unable to remote connect to the registry", 2) ElseIf @error = -1 Then MsgBox("Error", "Unable to save requested value", 2) ElseIf @error = -2 Then MsgBox("Error", "Value type not supported,", 2) EndIf EndIf EndIf Else $ws_start = False GUICtrlSetState($b5, $GUI_UNCHECKED) ConsoleWrite("Attempting reg delete" & @LF) If RegDelete("HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Run", "Daily Backupv1_3b") <> 1 Then If @error = 1 Then MsgBox(0, "Error", "Unable to open requested key", 2) ElseIf @error = 2 Then MsgBox(0, "Error", " deleting key/value.", 2) ElseIf @error = 3 Then MsgBox("Error", "Unable to remote connect to the registry", 2) ElseIf @error = -1 Then MsgBox("Error", "Unable to delete requested value", 2) ElseIf @error = -2 Then MsgBox("Error", "Unable to delete requested key/value", 2) EndIf EndIf EndIf IniWrite($inifile, "config", 1, $ws_start) EndFunc ;==>windows_start Func _DirCopy($iSource, $iDest, $flag = 1);$flag = 1 - Overwrite files and folders $_dir_copy = 0 Dim $aFiles[1] Local $iFirstFile, $iNextFile, $iFullFile, $iRec = '' Local $iFirstFile = FileFindFirstFile($iSource & "\*.*") If @error Then Return While 1 $iNextFile = FileFindNextFile($iFirstFile) If @error Then Local $iPercent, $iDestDir, $oFile, $oFolder, $i $oFile = 9 $oFolder = 1 If Not FileExists($iDest) Then DirCreate($iDest) For $i = 1 To $aFiles[0] $iPercent = Round($i / $aFiles[0] * 100, 2) GUICtrlSetData($progress2, $iPercent) If StringInStr(FileGetAttrib($aFiles[$i]), "D") Then $iDestDir = $iDest & "\" & StringRegExpReplace($aFiles[$i], "^.*\\", "") If Not FileExists($iDestDir) Then DirCreate($iDestDir) If DirCopy($aFiles[$i], $iDestDir, $oFolder) <> 1 Then $_dir_copy += 1 Else If FileCopy($aFiles[$i], $iDest, $oFile) <> 1 Then $_dir_copy += 1 EndIf Next ExitLoop EndIf $iFullFile = $iSource & "\" & $iNextFile $aFiles[0] += 1 ReDim $aFiles[$aFiles[0] + 1] $aFiles[$aFiles[0]] = $iFullFile WEnd FileClose($iFirstFile) EndFunc ;==>_DirCopy Func save() $ct = _GUICtrlListView_GetItemCount($hListView) If $ct > 0 Then IniDelete($inifile, "files") For $x = 0 To $ct - 1 IniWrite($inifile, "files", $x, _GUICtrlListView_GetItemImage($hListView, $x) & "|" & _ _GUICtrlListView_GetItemText($hListView, $x, 0) & "|" & _ _GUICtrlListView_GetItemText($hListView, $x, 1) & "|" & _ _GUICtrlListView_GetItemText($hListView, $x, 2) & "|" & _ _GUICtrlListView_GetItemText($hListView, $x, 3)) Next Else IniDelete($inifile, "files") EndIf IniWrite($inifile, "config", 1, $ws_start) $win_pos = WinGetPos("My Backup V1.3") IniWrite($inifile, "winpos", 0, Round($win_pos[0], -1) & "|" & Round($win_pos[1], -1) & "|" & '500' & "|" & Round($win_pos[3] - 10, -1)) EndFunc ;==>save [u]My Projects.[/u]Launcher - not just for games & Apps (Mp3's & Network Files)Mp3 File RenamerMy File Backup UtilityFFXI - Realtime to Vana time Clock Link to comment Share on other sites More sharing options...
Robjong Posted May 10, 2008 Share Posted May 10, 2008 hey, your last version does not work for me (XP pro) i set the backup directory and added a dir to the list, then after running it said 'OK!' but nothing had happend (no files/dirs copied) Link to comment Share on other sites More sharing options...
Aceguy Posted May 10, 2008 Author Share Posted May 10, 2008 (edited) hmmm, i run xp pro. and obviosly have no probs. anyone else have the same problem. are you using the latest autoit.? Edited May 10, 2008 by Aceguy [u]My Projects.[/u]Launcher - not just for games & Apps (Mp3's & Network Files)Mp3 File RenamerMy File Backup UtilityFFXI - Realtime to Vana time Clock Link to comment Share on other sites More sharing options...
Robjong Posted May 12, 2008 Share Posted May 12, 2008 i think so , 3.2.10.0 Release and 3.2.11.12 Beta 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