htclub Posted February 28, 2014 Share Posted February 28, 2014 Random files copy like http://www.cubesw.com/copytostick.html with multi source folder Link to comment Share on other sites More sharing options...
FireFox Posted February 28, 2014 Share Posted February 28, 2014 (edited) Hi, At first list the files in the folders (recursively) usingĀ _FileListToArray and apply some filters. Then loop through the array and use FileCopy. Br, FireFox. Edited February 28, 2014 by FireFox Link to comment Share on other sites More sharing options...
htclub Posted April 5, 2014 Author Share Posted April 5, 2014 samples code please! Link to comment Share on other sites More sharing options...
Developers Jos Posted April 5, 2014 Developers Share Posted April 5, 2014 samples code please! You have been given some pointers on how to start, so did you look at them and tried anything yourself? SciTE4AutoIt3 Full installer Download page Ā -Ā Beta filesĀ Ā Ā Ā Read before postingĀ Ā Ā How to post scriptsourceĀ Ā Ā Forum etiquetteĀ Forum RulesĀ Ā Live for the present, Dream of the future, Learn from the past.Ā Link to comment Share on other sites More sharing options...
UEZ Posted April 5, 2014 Share Posted April 5, 2014 (edited) Here is something I wrote some time ago which may a good start point for you.Ā Random Copy.au3expandcollapse popup#AutoIt3Wrapper_UseX64=n #AutoIt3Wrapper_Run_Au3Stripper=y #Au3Stripper_Parameters=/SO #AutoIt3Wrapper_Run_After=del /f /q "%scriptdir%\%scriptfile%_stripped.au3" ;#AutoIt3Wrapper_Res_Field=ProductVersion|%AutoItVer% ;#AutoIt3Wrapper_Res_Field=Compile Date|%longdate% %time% #pragma compile(inputboxres, False) #pragma compile(FileVersion, 0.9.6.0) #pragma compile(CompanyName, "UEZ Software Development") #pragma compile(ProductName, "Random Copy") #pragma compile(FileDescription, "A simple random file copier written in AutoIt") #pragma compile(UPX, False) #pragma compile(Icon, "Files\file_copy_48x48.ico") ;~ #AutoIt3Wrapper_Run_After=upx.exe --best --lzma "%out%" ;~ #include <Array.au3> #include <Constants.au3> #include <EditConstants.au3> #include <GDIPlus.au3> #include <GUIConstantsEx.au3> #include <SliderConstants.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> Break(0) AutoItSetOption("GUICloseOnESC", 0) AutoItSetOption("MustDeclareVars", 1) If Not _GDIPlus_Startup() Then Exit _WinAPI_ShowError("GDIPlus is required but not installed on this system!", False) Global $aDPI = _GDIPlus_GraphicsGetDPIRatio() Global Const $iBgColor = 0x80C080, $STM_SETIMAGE = 0x0172, $BM_CLICK = 245, $sTitle = "Random Copy v0.96 beta build 2014-01-07 by UEZ" Global Const $hGUI = GUICreate($sTitle, 468, 437, -1, -1) GUISetBkColor($iBgColor, $hGUI) Global Const $iGroup = GUICtrlCreateGroup("", 1, -4, 465, 92) DllCall("UxTheme.dll", "int", "SetWindowTheme", "hwnd", GUICtrlGetHandle($iGroup), "wstr", 0, "wstr", 0) Global Const $iLabel_Bg = GUICtrlCreateLabel("", 4, 5, 460, 81) GUICtrlSetBkColor(-1, 0xFFFFFF) Global Const $iPic_Logo = GUICtrlCreatePic("", 6, 2, 456, 77) Global Const $hPic_Logo = GUICtrlGetHandle($iPic_Logo) Global Const $hImage = _GDIPlus_BitmapCreateFromMemory(_Logo()) ;~ Global Const $hImage = _GDIPlus_BitmapCreateFromFile(@ScriptDir & "\Files\RandomCopy11.png") Global Const $hHBitmap_Logo = _GDIPlus_BitmapCreateHBITMAPFromBitmap($hImage) _GDIPlus_BitmapDispose($hImage) _WinAPI_DeleteObject(GUICtrlSendMsg($iPic_Logo, 0x0172, 0, $hHBitmap_Logo)) GUICtrlCreateGroup("", -99, -99, 1, 1) Global Const $iButton_Src = GUICtrlCreateButton("Source", 6, 104, 50, 50) Global Const $iInput_Src = GUICtrlCreateInput("", 63, 117, 400, 26) GUICtrlSetStyle(-1, $ES_NOHIDESEL) GUICtrlSetFont(-1, 10 * $aDPI[0], 400, 0, "Arial") Global Const $iLabel_Filter = GUICtrlCreateLabel( "File Filter", 64, 159, 56, 23) GUICtrlSetStyle( -1, BitOr($SS_CENTER, $SS_CENTERIMAGE)) GUICtrlSetFont( -1, 10 * $aDPI[0]) Global Const $iInput_Filter = GUICtrlCreateInput( ".*\.mp3", 129, 159, 85, 23) GUICtrlSetTip(-1, "Use regular expression syntax only!", "Information", 1, 2) GUICtrlSetFont( -1, 10 * $aDPI[0], 400, 0, "Arial") Global Const $iButton_Dst = GUICtrlCreateButton("Dest.", 6, 197, 50, 50) Global Const $iInput_Dst = GUICtrlCreateInput("", 63, 209, 400, 26) GUICtrlSetFont(-1, 10 * $aDPI[0], 400, 0, "Arial") Global Const $iRadio_CpFull = GUICtrlCreateRadio("Copy until destination is full", 6, 273, 155, 17, $WS_GROUP) GUICtrlSetFont(-1, 8.5, 400, 0, "Arial") GUICtrlSetState(-1, $GUI_CHECKED) Global Const $iCheckbox_FStructure = GUICtrlCreateCheckbox( "Keep folder structure", 64, 242, 124, 18) GUICtrlSetFont( -1, 8.5 * $aDPI[0], 400, 0, "Arial") GUICtrlSetTip(-1, "Create also folder names", "Information", 1, 2) GUICtrlSetState(-1, $GUI_CHECKED) Global Const $iRadio_CpAmount = GUICtrlCreateRadio("Copy only following amount", 6, 299, 150, 17) GUICtrlSetFont(-1, 8.5, 400, 0, "Arial") GUICtrlSetTip(-1, "Amout of data to copy (MB)", "Information", 1, 2) Global Const $iSlider_Amount = GUICtrlCreateSlider(158, 298, 259, 22, $TBS_NOTICKS) GUICtrlSetBkColor(-1, $iBgColor) GUICtrlSetState(-1, $GUI_DISABLE) GUICtrlSetTip(-1, "Amout of data to copy (MB)", "Information", 1, 2) Global Const $hSlider_Amount = GUICtrlGetHandle($iSlider_Amount) Global Const $iInput_Amount = GUICtrlCreateInput("0", 422, 298, 42, 20, $ES_NUMBER) GUICtrlSetStyle(-1, $ES_CENTER) GUICtrlSetTip(-1, "Amout of data to copy (MB)", "Information", 1, 2) GUICtrlSetFont(-1, 8.5 * $aDPI[0], 400, 0, "Arial") GUICtrlSetState(-1, $GUI_DISABLE) Global Const $iCheckbox_CopyLimit = GUICtrlCreateCheckbox("Copy only files", 6, 334, 93, 13) GUICtrlSetFont(-1, 8.5, 400, 0, "Arial") GUICtrlSetState(-1, $GUI_DISABLE) Global Const $iRadio_CopyLimitL = GUICtrlCreateRadio("larger than ", 103, 334, 77, 13, $WS_GROUP) GUICtrlSetFont(-1, 8.5, 400, 0, "Arial") GUICtrlSetState(-1, $GUI_DISABLE) Global Const $iRadio_CopyLimitS = GUICtrlCreateRadio("smaller than", 179, 334, 78, 13) GUICtrlSetFont(-1, 8.5, 400, 0, "Arial") GUICtrlSetState(-1, $GUI_DISABLE) GUICtrlSetState(-1, $GUI_CHECKED) Global Const $iLabel_CopyLimitMB = GUICtrlCreateLabel("mb", 330, 334, 25, 13) GUICtrlSetFont(-1, 8.5, 400, 0, "Arial") Global Const $iInput_CopyLimit = GUICtrlCreateInput("", 259, 332, 64, 17, $ES_NUMBER) GUICtrlSetFont(-1, 8.5, 400, 0, "Arial") GUICtrlSetState(-1, $GUI_DISABLE) Global Const $iRadio_CopyBetween = GUICtrlCreateRadio("between", 103, 362, 63, 17) GUICtrlSetFont(-1, 8.5, 400, 0, "Arial") GUICtrlSetState(-1, $GUI_DISABLE) Global Const $iInput_CopyBetweenMin = GUICtrlCreateInput("", 167, 362, 64, 17, $ES_NUMBER) GUICtrlSetFont(-1, 8.5, 400, 0, "Arial") GUICtrlSetState(-1, $GUI_DISABLE) Global Const $iLabel_CopyBetweenLeft = GUICtrlCreateLabel("mb and", 235, 364, 37, 13) GUICtrlSetFont(-1, 8.5, 400, 0, "Arial") Global Const $iInput_CopyBetweenMax = GUICtrlCreateInput("", 275, 362, 64, 17, $ES_NUMBER) GUICtrlSetFont(-1, 8.5, 400, 0, "Arial") GUICtrlSetState(-1, $GUI_DISABLE) Global Const $iLabel_CopyBetweenRight = GUICtrlCreateLabel("mb", 345, 364, 37, 13) GUICtrlSetFont(-1, 8.5, 400, 0, "Arial") Global Const $iButton_Start = GUICtrlCreateButton("Start", 6, 402, 459, 31) GUICtrlSetFont(-1, 15 * $aDPI[0], 400, 0, "Impact") GUICtrlSetState(-1, $GUI_DISABLE) Global Const $hGUI_Child = GUICreate("", 468, 437, 0, 0, $WS_POPUP, $WS_EX_MDICHILD, $hGUI) ;$WS_EX_TRANSPARENT GUISetBkColor(0x0) Global Const $iEdit_CopyLog = GUICtrlCreateEdit("" & @CRLF & @CRLF, 0, 0, 468, 437, BitOR($ES_AUTOVSCROLL, $ES_MULTILINE, $ES_READONLY)) GUICtrlSetFont(-1, 7 * $aDPI[0], 800, 0, "Arial Black", 4) GUICtrlSetColor(-1, 0x000020) Global Const $hEdit_CopyLog = GUICtrlGetHandle($iEdit_CopyLog) GUICtrlSendMsg($hEdit_CopyLog, $EM_LIMITTEXT, -1, 0) WinSetTrans($hGUI_Child, "", 0xD0) GUISetState(@SW_HIDE, $hGUI_Child) GUISetState(@SW_SHOW, $hGUI) Global $sSource, $sDest, $aFiles, $r, $z, $iFSizeSum, $bBreak, $iFree, $iPerc, $bFinished, $bSrc = False, $bDest = False, $iLinePos = 0 GUIRegisterMsg($WM_HSCROLL, "WM_HSCROLL") GUIRegisterMsg($WM_COMMAND, "WM_COMMAND") HotKeySet("{F1}", "ShowLogScreen") While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE HotKeySet("{F1}") GUIRegisterMsg($WM_COMMAND, "") GUIRegisterMsg($WM_HSCROLL, "") _WinAPI_DeleteObject($hHBitmap_Logo) _GDIPlus_Shutdown() GUIDelete() Exit Case $iButton_Src $sSource = FileSelectFolder("Please select a folder which you want to copy", "", 6, "", $hGUI) If Not @error Then GUICtrlSetData($iInput_Src, $sSource) $bSrc = True If $bDest And BitAND(GUICtrlRead($iCheckbox_CopyLimit), $GUI_UNCHECKED) Then GUICtrlSetState($iCheckbox_CopyLimit, $GUI_ENABLE) GUICtrlSetState($iButton_Start, $GUI_ENABLE) EndIf If BitAND(GUICtrlRead($iRadio_CpAmount), $GUI_CHECKED) Then GUICtrlSendMsg($iRadio_CpAmount, $BM_CLICK, 0, 0) EndIf Case $iButton_Dst $sDest = FileSelectFolder("Please select the destination folder", "", 7, "", $hGUI) If Not @error Then GUICtrlSetData($iInput_Dst, $sDest) $iFree = DriveSpaceFree(StringLeft(GUICtrlRead($iInput_Dst), 3)) GUICtrlSetLimit($iSlider_Amount, Floor($iFree), 0) GUICtrlSetData($iSlider_Amount, $iFree) GUICtrlSetData($iInput_Amount, Floor($iFree)) If $bSrc And BitAND(GUICtrlRead($iCheckbox_CopyLimit), $GUI_UNCHECKED) Then GUICtrlSetState($iCheckbox_CopyLimit, $GUI_ENABLE) GUICtrlSetState($iButton_Start, $GUI_ENABLE) EndIf $bDest = True If BitAND(GUICtrlRead($iRadio_CpAmount), $GUI_CHECKED) Then GUICtrlSendMsg($iRadio_CpAmount, $BM_CLICK, 0, 0) EndIf Case $iButton_Start If BitAND(GUICtrlRead($iCheckbox_CopyLimit), $GUI_CHECKED) = $GUI_CHECKED Then If BitAND(GUICtrlRead($iRadio_CopyLimitL), $GUI_CHECKED) = $GUI_CHECKED Or BitAND(GUICtrlRead($iRadio_CopyLimitS), $GUI_CHECKED) = $GUI_CHECKED Then If GUICtrlRead($iInput_CopyLimit) = "" Then GUICtrlSetBkColor($iInput_CopyLimit, 0xFF0000) ContinueCase Else GUICtrlSetBkColor($iInput_CopyLimit, 0xFFFFFF) EndIf ElseIf BitAND(GUICtrlRead($iRadio_CopyBetween), $GUI_CHECKED) = $GUI_CHECKED Then If GUICtrlRead($iInput_CopyBetweenMin) = "" Or GUICtrlRead($iInput_CopyBetweenMax) = "" or Int(GUICtrlRead($iInput_CopyBetweenMin)) >= Int(GUICtrlRead($iInput_CopyBetweenMax)) Then GUICtrlSetBkColor($iInput_CopyBetweenMin, 0xFF0000) GUICtrlSetBkColor($iInput_CopyBetweenMax, 0xFF0000) ContinueCase Else GUICtrlSetBkColor($iInput_CopyBetweenMin, 0xFFFFFF) GUICtrlSetBkColor($iInput_CopyBetweenMax, 0xFFFFFF) EndIf EndIf EndIf HotKeySet("{ESC}", "_Break") $z = 1 $iFSizeSum = 0 $bBreak = False $bFinished = False GUISetState(@SW_SHOWNA, $hGUI_Child) GUICtrlSetState($iButton_Src, $GUI_DISABLE) GUICtrlSetState($iButton_Dst, $GUI_DISABLE) GUICtrlSetState($iInput_Src, $GUI_DISABLE) GUICtrlSetState($iInput_Dst, $GUI_DISABLE) GUICtrlSetState($iInput_Filter, $GUI_DISABLE) GUICtrlSetState($iCheckbox_FStructure, $GUI_DISABLE) GUICtrlSetState($iRadio_CpFull, $GUI_DISABLE) GUICtrlSetState($iRadio_CpAmount, $GUI_DISABLE) GUICtrlSetState($iSlider_Amount, $GUI_DISABLE) GUICtrlSetState($iInput_Amount, $GUI_DISABLE) GUICtrlSetState($iCheckbox_CopyLimit, $GUI_DISABLE) GUICtrlSetState($iRadio_CopyLimitL, $GUI_DISABLE) GUICtrlSetState($iRadio_CopyLimitS, $GUI_DISABLE) GUICtrlSetState($iInput_CopyLimit, $GUI_DISABLE) GUICtrlSetState($iRadio_CopyBetween, $GUI_DISABLE) GUICtrlSetState($iInput_CopyBetweenMin, $GUI_DISABLE) GUICtrlSetState($iInput_CopyBetweenMax, $GUI_DISABLE) GUISetState(@SW_DISABLE, $hGUI_Child) _SendMessage($hEdit_CopyLog, $EM_SETSEL, $iLinePos, $iLinePos) GUICtrlSetData($iEdit_CopyLog, "Please wait or press ESC to end." & @CRLF & @CRLF) GUICtrlSetData($iEdit_CopyLog, "Enumerating files (may take a while)!" & @CRLF, 1) Dim $aFiles[16384][2] $r = EnumFiles(GUICtrlRead($iInput_Src), $aFiles, GUICtrlRead($iInput_Filter)) If @error Or $bBreak Then GUISetState(@SW_ENABLE, $hGUI_Child) GUISetState(@SW_HIDE, $hGUI_Child) ContinueCase EndIf ReDim $aFiles[$r][2] GUICtrlSetData($iEdit_CopyLog, @CRLF & "Found " & $aFiles[0][0] & " files" & @CRLF, 1) GUICtrlSetData($iEdit_CopyLog, "Shuffling files" & @CRLF, 1) Shuffle_Array($aFiles, 1) ;~ _ArrayDisplayConsole($aFiles, 120) GUICtrlSetData($iEdit_CopyLog, "Starting copy process by selecting random files" & @CRLF, 1) CopyFiles($aFiles, GUICtrlRead($iInput_Dst)) $iFree = DriveSpaceFree(StringLeft(GUICtrlRead($iInput_Dst), 3)) GUICtrlSetLimit($iSlider_Amount, $iFree) GUICtrlSetData($iSlider_Amount, $iFree) GUICtrlSetData($iInput_Amount, Floor($iFree)) GUICtrlSetState($iButton_Src, $GUI_ENABLE) GUICtrlSetState($iButton_Dst, $GUI_ENABLE) GUICtrlSetState($iInput_Src, $GUI_ENABLE) GUICtrlSetState($iInput_Dst, $GUI_ENABLE) GUICtrlSetState($iInput_Filter, $GUI_ENABLE) GUICtrlSetState($iCheckbox_FStructure, $GUI_ENABLE) GUICtrlSetState($iRadio_CpFull, $GUI_ENABLE) GUICtrlSetState($iRadio_CpAmount, $GUI_ENABLE) GUICtrlSetState($iSlider_Amount, $GUI_ENABLE) GUICtrlSetState($iInput_Amount, $GUI_ENABLE) GUICtrlSetState($iCheckbox_CopyLimit, $GUI_ENABLE) If BitAND(GUICtrlRead($iCheckbox_CopyLimit), $GUI_CHECKED) = $GUI_CHECKED Then GUICtrlSetState($iRadio_CopyLimitL, $GUI_ENABLE) GUICtrlSetState($iRadio_CopyLimitS, $GUI_ENABLE) GUICtrlSetState($iInput_CopyLimit, $GUI_ENABLE) GUICtrlSetState($iRadio_CopyBetween, $GUI_ENABLE) GUICtrlSetState($iInput_CopyBetweenMin, $GUI_ENABLE) GUICtrlSetState($iInput_CopyBetweenMax, $GUI_ENABLE) EndIf Case $iRadio_CpAmount If $bSrc And $bDest Then GUICtrlSetState($iInput_Amount, $GUI_ENABLE) GUICtrlSetState($iSlider_Amount, $GUI_ENABLE) EndIf Case $iRadio_CpFull GUICtrlSetState($iInput_Amount, $GUI_DISABLE) GUICtrlSetState($iSlider_Amount, $GUI_DISABLE) Case $iCheckbox_CopyLimit If BitAND(GUICtrlRead($iCheckbox_CopyLimit), $GUI_CHECKED) = $GUI_CHECKED Then GUICtrlSetState($iRadio_CopyLimitL, $GUI_ENABLE) GUICtrlSetState($iRadio_CopyLimitS, $GUI_ENABLE) GUICtrlSetState($iInput_CopyLimit, $GUI_ENABLE) GUICtrlSetState($iRadio_CopyBetween, $GUI_ENABLE) If BitAND(GUICtrlRead($iRadio_CopyLimitL), $GUI_CHECKED) = $GUI_CHECKED Or BitAND(GUICtrlRead($iRadio_CopyLimitS), $GUI_CHECKED) = $GUI_CHECKED Then GUICtrlSetState($iInput_CopyBetweenMin, $GUI_DISABLE) GUICtrlSetState($iInput_CopyBetweenMax, $GUI_DISABLE) GUICtrlSetState($iInput_CopyLimit, $GUI_ENABLE) ElseIf BitAND(GUICtrlRead($iRadio_CopyBetween), $GUI_CHECKED) = $GUI_CHECKED Then GUICtrlSetState($iInput_CopyLimit, $GUI_DISABLE) GUICtrlSetState($iInput_CopyBetweenMin, $GUI_ENABLE) GUICtrlSetState($iInput_CopyBetweenMax, $GUI_ENABLE) EndIf Else GUICtrlSetState($iRadio_CopyLimitL, $GUI_DISABLE) GUICtrlSetState($iRadio_CopyLimitS, $GUI_DISABLE) GUICtrlSetState($iInput_CopyLimit, $GUI_DISABLE) GUICtrlSetState($iRadio_CopyBetween, $GUI_DISABLE) GUICtrlSetState($iInput_CopyBetweenMin, $GUI_DISABLE) GUICtrlSetState($iInput_CopyBetweenMax, $GUI_DISABLE) EndIf Case $iRadio_CopyLimitL, $iRadio_CopyLimitS GUICtrlSetState($iInput_CopyBetweenMin, $GUI_DISABLE) GUICtrlSetState($iInput_CopyBetweenMax, $GUI_DISABLE) GUICtrlSetState($iInput_CopyLimit, $GUI_ENABLE) Case $iRadio_CopyBetween GUICtrlSetState($iInput_CopyLimit, $GUI_DISABLE) GUICtrlSetState($iInput_CopyBetweenMin, $GUI_ENABLE) GUICtrlSetState($iInput_CopyBetweenMax, $GUI_ENABLE) EndSwitch If $bBreak Then MsgBox(BitOR($MB_TOPMOST, $MB_ICONWARNING) , "Warning", "The operation has been aborted!", 30, $hGUI) $bBreak = False $bFinished = False ElseIf $bFinished Then MsgBox(BitOR($MB_TOPMOST, $MB_ICONINFORMATION) , "Information", "Copy process has been finished.", 30, $hGUI) $bFinished = False EndIf WEnd Func CopyFiles($aFiles, $sDest) If GUICtrlRead($iInput_Src) = "" Then $bSrc = False Return 0 ElseIf $sDest = "" Then $bDest = False Return 0 EndIf If StringRight($sDest, 1) <> "\" Then $sDest &= "\" GUICtrlSetState($iButton_Start, $GUI_DISABLE) Local $iFree = DriveSpaceFree(StringLeft(GUICtrlRead($iInput_Dst), 3)) * 1024^2 , $w, $z, $iSize, $sLine, _ $bFStructure = BitAND(GUICtrlRead($iCheckbox_FStructure), $GUI_CHECKED) If BitAND(GUICtrlRead($iRadio_CpAmount), $GUI_CHECKED) Then $iFree = GUICtrlRead($iInput_Amount) * 1024^2 EndIf Local $iTimer = TimerInit() For $iPerc = 1 To $aFiles[0][0] - 1 If $iFree - $aFiles[$iPerc][1] > -1 Then $iSize = Round($aFiles[$iPerc][1] / 1024^2, 2) & " mb" If StringLen($iSize) > 7 Then $sLine = $iSize & @TAB & $aFiles[$iPerc][0] Else $sLine = $iSize & @TAB & @TAB & $aFiles[$iPerc][0] EndIf Switch $bFStructure Case 0 If BitAND(GUICtrlRead($iCheckbox_CopyLimit), $GUI_CHECKED) And BitAND(GUICtrlRead($iRadio_CopyLimitL), $GUI_CHECKED) And $aFiles[$iPerc][1] / 1024^2 < Int(GUICtrlRead($iInput_CopyLimit)) Then ContinueCase If BitAND(GUICtrlRead($iCheckbox_CopyLimit), $GUI_CHECKED) And BitAND(GUICtrlRead($iRadio_CopyLimitS), $GUI_CHECKED) And $aFiles[$iPerc][1] / 1024^2 > Int(GUICtrlRead($iInput_CopyLimit)) Then ContinueCase If BitAND(GUICtrlRead($iCheckbox_CopyLimit), $GUI_CHECKED) And BitAND(GUICtrlRead($iRadio_CopyBetween), $GUI_CHECKED) And ($aFiles[$iPerc][1] / 1024^2 < Int(GUICtrlRead($iInput_CopyBetweenMin)) Or $aFiles[$iPerc][1] / 1024^2 > Int(GUICtrlRead($iInput_CopyBetweenMax))) Then ContinueCase If FileCopy($aFiles[$iPerc][0], $sDest & StringRegExpReplace($aFiles[$iPerc][0], ".*\\(.*)", "\1"), 8) Then GUICtrlSetData($iEdit_CopyLog, $sLine & @CRLF, 1) $iFree -= $aFiles[$iPerc][1] $z += $aFiles[$iPerc][1] Else GUICtrlSetData($iEdit_CopyLog, "Failed to copy " & $aFiles[$iPerc][0] & @CRLF, 1) EndIf Case Else If BitAND(GUICtrlRead($iCheckbox_CopyLimit), $GUI_CHECKED) And BitAND(GUICtrlRead($iRadio_CopyLimitL), $GUI_CHECKED) And $aFiles[$iPerc][1] / 1024^2 < Int(GUICtrlRead($iInput_CopyLimit)) Then ContinueCase If BitAND(GUICtrlRead($iCheckbox_CopyLimit), $GUI_CHECKED) And BitAND(GUICtrlRead($iRadio_CopyLimitS), $GUI_CHECKED) And $aFiles[$iPerc][1] / 1024^2 > Int(GUICtrlRead($iInput_CopyLimit)) Then ContinueCase If BitAND(GUICtrlRead($iCheckbox_CopyLimit), $GUI_CHECKED) And BitAND(GUICtrlRead($iRadio_CopyBetween), $GUI_CHECKED) And ($aFiles[$iPerc][1] / 1024^2 < Int(GUICtrlRead($iInput_CopyBetweenMin)) Or $aFiles[$iPerc][1] / 1024^2 > Int(GUICtrlRead($iInput_CopyBetweenMax))) Then ContinueCase If FileCopy($aFiles[$iPerc][0], $sDest & StringRegExpReplace($aFiles[$iPerc][0], "(?i)[a-z]:\\(.*)", "\1"), 8) Then GUICtrlSetData($iEdit_CopyLog, $sLine & @CRLF, 1) $iFree -= $aFiles[$iPerc][1] $z += $aFiles[$iPerc][1] Else GUICtrlSetData($iEdit_CopyLog, "Failed to copy " & $aFiles[$iPerc][0] & @CRLF, 1) EndIf EndSwitch If $bBreak Then GUICtrlSetData($iEdit_CopyLog, @CRLF & @CRLF & "Break signal received!" & @CRLF, 1) ExitLoop EndIf EndIf WinSetTitle($hGUI, "", StringFormat("%.2f mb copied / %.2f mb free / Time: %.2f s", $z / 1024^2, $iFree / 1024^2, TimerDiff($iTimer) / 1000)) Next If Not $bBreak Then $bFinished = True GUICtrlSetData($iEdit_CopyLog, @CRLF & Round($z / 1024^2, 2) & " mb copied in " & StringFormat("%.2f seconds", TimerDiff($iTimer) / 1000) & "." & @CRLF, 1) HotKeySet("{ESC}") $iLinePos = _SendMessage($hEdit_CopyLog, $EM_LINEINDEX, -1) + 2 GUISetState(@SW_ENABLE, $hGUI_Child) Sleep(2500) GUISetState(@SW_HIDE, $hGUI_Child) GUICtrlSetState($iButton_Start, $GUI_ENABLE) WinSetTitle($hGUI, "", $sTitle) EndFunc Func EnumFiles($sPath, ByRef $aFiles, $sFilter = "*", $bRecursive = True) If $bBreak Then Return 0 If StringRight($sPath, 1) = "\" Then $sPath = StringTrimRight($sPath, 1) Local $hSearch = FileFindFirstFile($sPath & "\*") If $hSearch = -1 Then Return SetError(1, 0, 0) Local $sFileName, $iCells = 1024, $sFile, $iExtended While 1 $sFileName = FileFindNextFile($hSearch) If @error Then ExitLoop $iExtended = @extended $sFile = $sPath & "\" & $sFileName If $iExtended And $bRecursive Then EnumFiles($sFile, $aFiles, $sFilter, $bRecursive) EndIf If Not $iExtended Then If $sFilter <> "*" Then If StringRegExp($sFile, "(?i)" & $sFilter) Then $aFiles[$z][0] = $sFile $aFiles[$z][1] = FileGetSize($sFile) $iFSizeSum += $aFiles[$z][1] $z += 1 EndIf Else $aFiles[$z][0] = $sFile $aFiles[$z][1] = FileGetSize($sFile) $iFSizeSum += $aFiles[$z][1] $z += 1 EndIf If $z = UBound($aFiles) Then ReDim $aFiles[$z + $iCells][2] EndIf WEnd FileClose($hSearch) $aFiles[0][0] = $z - 1 $aFiles[0][1] = $iFSizeSum Return $z EndFunc Func WM_COMMAND($hWnd, $Msg, $wParam, $lParam) #forceref $hWnd, $Msg, $wParam, $lParam Switch BitAND($wParam, 0x0000FFFF) Case $iInput_Dst If _WinAPI_HiWord($wParam) = $EN_KILLFOCUS And GUICtrlRead($iInput_Dst) <> "" Then $iFree = DriveSpaceFree(StringLeft(GUICtrlRead($iInput_Dst), 3)) GUICtrlSetLimit($iSlider_Amount, $iFree) GUICtrlSetData($iSlider_Amount, $iFree) GUICtrlSetData($iInput_Amount, Floor($iFree)) EndIf EndSwitch Return $GUI_RUNDEFMSG EndFunc Func WM_HSCROLL($hWnd, $Msg, $wParam, $lParam) #forceref $hWnd, $Msg, $wParam, $lParam Switch $lParam Case $hSlider_Amount GUICtrlSetData($iInput_Amount, GUICtrlRead($iSlider_Amount)) EndSwitch EndFunc ;==>WM_HSCROLL ; #FUNCTION# ====================================================================================== ; Name ................: Shuffle_Array() ; Version .............: v0.50 build 2011-05-24 beta ; Description .........: Shuffles an array - support 1D and 2D arrays only ; Syntax ..............: Shuffle_Array(ByRef $array, $startindex = 0, $endindex = 0) ; Parameters ..........: $array - the array to shuffle ; $startindex = from which index to start the shuffling ; $endindex = to which index to start the shuffling; 0 means last index of the array ; Return values .......: True ; Failure 1 - $array is not an array ; Failure 2 - array has more than 2 dimensions ; Failure 3 - array is empty ; Failure 4 - $startindex / $endindex are set wrongly ; Author ..............: UEZ ; Modified ............: ; Remarks .............: ; Related .............: Array ; ================================================================================================= Func Shuffle_Array(ByRef $array, $startindex = 0, $endindex = 0) If Not IsArray($array) Then Return SetError(1, 0, 0) If UBound($array, 0) > 2 Then Return SetError(2, 0, 0) If UBound($array) = 1 Then Return SetError(3, 0, 0) Local $u1 If Not $endindex Then $u1 = UBound($array) - 1 Else If $endindex > $startindex And $endindex < UBound($array) Then $u1 = $endindex Else Return SetError(4, 0, 0) EndIf EndIf Local $i, $j, $r If UBound($array, 2) Then Local $aSwap[1][UBound($array, 2)], $u2 = UBound($array, 2) - 1 For $i = $startindex To $u1 $r = Random($startindex, $u1, 1) For $j = 0 To $u2 $aSwap[0][$j] = $array[$i][$j] $array[$i][$j] = $array[$r][$j] $array[$r][$j] = $aSwap[0][$j] Next Next Else Local $aSwap[1] For $i = $startindex To $u1 $r = Random($startindex, $u1, 1) $aSwap[0] = $array[$i] $array[$i] = $array[$r] $array[$r] = $aSwap[0] Next EndIf Return 1 EndFunc Func _Break() If WinActive($hGUI) Or WinActive($hGUI_Child) Then $bBreak = True ConsoleWrite("Break signal sent!" & @LF) EndIf EndFunc Func ShowLogScreen() If WinActive($hGUI) Or WinActive($hGUI_Child) Then Local $iState = WinGetState($hGUI_Child) If BitAND($iState, 2) = 2 Then GUISetState(@SW_HIDE, $hGUI_Child) ElseIf BitXOR(WinGetState($hGUI_Child), 2) Then GUISetState(@SW_SHOWNA, $hGUI_Child) EndIf EndIf EndFunc Func _GDIPlus_GraphicsGetDPIRatio($iDPIDef = 96) Local $hGfx = _GDIPlus_GraphicsCreateFromHWND(0) If @error Then Return SetError(1, @extended, 0) Local $aResult = DllCall($__g_hGDIPDll, "int", "GdipGetDpiX", "handle", $hGfx, "float*", 0) If @error Then Return SetError(2, @extended, 0) Local $iDPI = $aResult[2] _GDIPlus_GraphicsDispose($hGfx) Local $aResults[2] = [$iDPIDef/ $iDPI, $iDPI / $iDPIDef] Return $aResults EndFunc ;==>_GDIPlus_GraphicsGetDPIRatio ;Code below was generated by: 'File to Base64 String' Code Generator v1.12 Build 2013-11-05 Func _Logo($bSaveBinary = False, $sSavePath = @ScriptDir) Local $Logo $Logo &= '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' $Logo &= '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' $Logo &= 'BL0OhAlbS30e9vylQN8vILOV0OuxImCtGoH2QGIBdWQwqCOLZLmcOiQDV/azF/A7x4GARvDFTc1EP25HFncX7tn7Xfjhb5H57gNBg7g6zBH3S3tR+Oibmsig4VPOSzT5YBGQpbcbdDOIvjXGey+y6BFoY6bwIRlr0QZIvttyfDZX91di3JOuQC4PgKCxnEYbS2SGG+5C4qPIhh3KrnwTiAUd7gVFawGh18QgO0Co/d+DQ4MCDoGQH0a0MgqR9eNwcuMPoBOY8KlwIDOQbcyC0s7R/omnIZB7QIy1WsJR4boppxHJQKnTZiH9rSxLDp+pcgg3ytAwHUTDy4D8gHAY01zRt8d/Q9un0I+c6/fjWbv4e0+ML+wWlDyqY/LmiL+NRH/qp0hD+op9aUpCYoZAYVpYH6VsD3t52+y1oYQNOiELawdFRFkjsC4mHArZBgraZR7KJS+jb0sAkPu9i4GX8PlCEXlRYZcDMaYIOJjln6sMaggu4rME5VXRdrlKbdu5apG2a7qTrxah4O33H3LKogGeAbQ7Hlfz+eQxRZAdplKexYTpl6ATP0OpYUC3I8L1C5H9vwZ8TfnVdRBdm3WiG52NvVqE6OuYX+U4ioRndWcDR3MfjLBuK0nmZ1jyaeKYJBVZ0SmfNZcISVRXGHn/xrHnEpnAJTr2w9T7CHNJzpz9GLLFFGAj12au8n6adyXoICLvhMEglhcxLmQ3oS2k3vxCuUeodSHlTEpgzTEMmA8HmRkCx5/+JggF/mQASC88Ab4DdvBMpov6dFn4pRFbhM/qvQLlTmQRtz4o/JmHpxzjeep7gomU/PhzDMt/Wmhz2OYrIOQ/hR4UVZdmI1B7Yj/I4VkQWoP/2JadQcsQU+XK35ClBYmypbim71uQ0xsghvchp49hP+9grNDNPqtAQttxj3zTPfNAmpuwdABirh0PWWBMNSCP4EZCxokjhA2O2Czk1vUFZJxIIHROoJ7mAL8yW4w07HCf5oF5C60t7A1+C3yBe60Xdj355PXtL24AEpRuIMuj4vckJDaeYl10J6uZLfkzUyfOW/qCYEGkI74H9/yOdk9AJ66J+ZiELP7+t9Em5rg6xtOsN+69BxwDnqrTSs73YtmuWmP1c5Ug44DsoEh0YCNIYzpuBkE+AGHPBvm9pBUdcy6BxD7BoE6pzybtFQ6ajj2Xwkk3ZA5BRgdgMv49gNZqCNq+aK0vz12BQJdh8kNgOBjn85n4DIbV/gmUaVCeYHYwmpsEoi1mkWbZtgeygiIgTxj+eGSs43ZiAr+HnKFQnYDJMOh5WTbthTzIRw8eUAYcCFllwAjugxHc3FEa9ps06BgDaYQDB3TlapkOowHBdn8OTgXBR8eJyPARQYXB8fnXgCHE6gYi7vugbgxfA2vxnQEyUNnD7EYLioLynRfymnuNBOmB/iymHIsZL+oROYxlEIy9SRdJQPncbZxgjK4dlKA6sP/22gh++mB+Z54S7RZnP+deRTaDCLVRRxnxnjbskjOTpFlnjwJaY0TWvV7G3E9GUDAQbaUiakdVgxF4vt7/pOEIUhEpRyJi1u3SW1V1srj2H20u7/I+gdxo9RxLU78KOQp9j7kL8z8F+oUsZsxWBK9HoHvZug0Im/D0kveYygAxwsqajfV1edg5Azw9CAyJhk32RyY4Dg57FWTQC3rdV/iKQvse2PbUwyAO2FWP+WLufKrIcuJSyjLMsLlnJHDSVkZ896HPhM8obp2fdRZEBwKv1UKRJLP3hsYMngjhkowW1QbXW9Zr4SdHrBM+rwGqgMkjQbKLQCTw+dOP6/5HXfN8FgJCkPhQkGXiYFFxI1EeZ9bYkDo/UyfImk3RzmbZhlPEpOn6JuxpGsju5vbSx+0CujCw+xDQfKshSP/Nkd8QvvupA8KnDnwfBP+emO/e8IVVa8t5nsWkJ15WBl0kSB9elFm+IrKoO0A6GVCKD3BzkNoSrfiwKL/g7wsgnJH6IvMjyOaCpEP8BegtlZapsGmn' $Logo &= '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' $Logo &= 'ecqS4wBma5EuRNHm9cdgYIbe1i2dMMbr3O/ty2IM714TMnDUr3Hvy2xKxwKDUScDWqWqIJSTro/zXSjPXDjRyJayzW3c5djPUGbSQiJRqngMUTd2n32UX/p6sRxjatBK9vE80MVAks1ZCtdujoeT3SJlWGpYgrWO5D4yeNnDikGsaat6exK8NvlL9NGiHD/KA6mC3KZvgh7dJTcwLWQG1pyy6MSsT3v8Hdhwtrq+VS/hcG7tCkd8/Mb3WomArNtYSR7fAym8R13zzr9CZo/+7PslEkF+7RiQ+R8lO08f5kL2X8C3VEC1xB9EFGizc5PVJ5RdOjdIaXfcD33fX/q6Pm8n/K+yx9VcnklgMqD1x6aeYGywYx9xTeljPgIob1+Z5S2h7NqSPzYgA7RXRx8HIcB4LwsJzF4xtx/mOfb7xjl66yJ0FEnPYFxfsTKuL4RezIUcU4dBlkj2qoX9x2/auZM/lUFHpNVNOoGMBrQoTNCnGNgarfTxJRzH83ByTZLlBHxLA40x1ePfB+y60S8/jGvtxdgHtDUa9fab6sooei6QaCqd+bhIkKHAIp3wk3sXrV+fgEBj75SO+JJhITsV0PwCoWxXrbX5Eci5WYo0yJXAAGZk3YSMxT3fPVW6emCej+eROfn4SZ34znBeah/glO7w7sWu29XZpd+/z2H4jyyBISJL467H8Ybt5JEkluWAPTgMsjxj/R7vodw4cI5wjj4VZaDwMh1THO1jAZAbEg7S/k2Xm7r+hW24tjbKWYlwcNtufK9VfyG7ekAS5Fagg8GpBJucitXs0ZtZ79VyXrb8Zqlip3WNSAQ3G0p4riCPNzG22+6W+p7J3b3DBBGJjUJVUQ0YswLzmlv6uvRZDqpJowQx8NGJAUB7zoX21knMLcrQvVByfuy10u3bJyixDpmHgPoWBFp6kKYeyZoCpFJPBgK79M1WtRtheehRkPo0ENZmqY9O8QU4YDwCPF0nUgfi9zwL/eT1Q1+AP6ymnrnnktF4yjJWbjyz8JhHgCRICOBzOM6N2r+DNSCCgdiWXc5bLgaPZAYXRZKMJkFoPZHZJHSG0qA8s8FefH34AIoY30kKeDvQyyhYJ5GHlCud43sVQORpg4ver5c2Qy4qi3wTSOO6l1YZBLkuz7qsY9uxPfUQdQ+2uxzQWneHbPN5zb+Er7JgaE8V2G4+hJnzHMBerwnKv2tLt0+fnkdGAkO+A+XMEBCXZzlJ4Af53GIC56YXy6vaXQMxlkzr9/oQ+njvKDn+bGYXGUAH3qcpd/vaU3qL7xuvX5sD53oYRHvU0f2F7izbg/LjQBmM5DI772TY+RdSaIJU1apkvRRXPcJmn/q+kFkFX8hmkOxbieFrBFBPvSud+zlgNAPCHgy8tFZdUInZU7q69C5KjSMXoAzeEeX66vKRLjvntB8JUvvyivBzq8+DCErZRz/xBnRwNDLrH1G+PAKibC71cRP9RXtiNpDVKAEZ8SYE7acxr9dcv8/7CGICa8LPlUdl7Q/r/XwDla7kXjKROAC8wHnuwYpLE0eJjjOC7AbYozDwLzGorZp1fH4CAzyACcQgt9rFZ5syIdhHrLXz/BeYgCaylLQASKQTiKJjyNYJdBXWxPogc+iPE1o25/L6YsD3IIQRz2GiQmTZbADQillkqJPNOuaj+77wRUSYPqbo/foOji6lpzTwTKA3ofkFwAEesNbeehjZLSqDXAykMzPtwJKEltxdyAPX/Kv4DLpVPUw908SodWFZT9HHjVdLry/fZoMc4TD0bO12BFJTV8GBYGNV3UZSlp+SxE+R0PIB7dmPoad5Vu8nrpn/tWw/E1hJ4k2lXqbw+UptzEtwolestb/2AoJN2Gg1OKbyPjJ7XA8MMqzbRBcDQfqyr/lwgvZXsVO3aRubXXdmjW4FUewryXkTPuLFtSAgEfiepV33pO/bqjvloTPE/JaWLm24KnxDDVSsOvYDqaAEP3gaiDJI6voL/FlgXr+3W7gP/fCCjcKv' $Logo &= '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' $Logo &= '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' $Logo &= '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' $Logo &= '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' $Logo &= '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' $Logo &= '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' $Logo &= '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' $Logo &= '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' $Logo &= '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' $Logo &= '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' $Logo &= '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' $Logo &= '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' $Logo &= 'gQxgAJGh9iewMsL1cGNFoyTHYlYMQJUbTPByAE8JB205aM/HJRIlOTjIbENNMGe7QQ4ifsChQQZbuIfpPqZ1BHPpWhlwE0lYNCIzIZqycl+TnCgXkqXJeThy9qb++juQibdRJhZkTziRl8PqgwpeCvOQsoNgz3H/AUd9M/XP30yMThyrr3neTZURCXOwZQ4ciDAHmVQcf5LYGPyYlxGoz8a2iAgT6jpw5n5mcixhP+RlCrD9HQbSjvUxjAh1ovMOyvaAyRaKrkvO9dxBRSSIY4k0zH+swwPGae8Oxm4ix9IgSJWRm0ro0aaALc5JIGmsAoQ42JtQcoMpJXheB14uEKmvEyIl+LmBWJw7NmWQVu7h+D4KprWxGk6Ml22b2nIsH9/rGS7BdmmkJCIXnb2nlUqAGVbk5eRYK8J6JkI4mlfHcH7klrl/jtfU1LyHmOfepAMOAwciUJEcCY7BkCkAMme6vgb4mwNOQjlwwBzola5DNcvRsR4S/k70keOwcK5oKeqSQx3nZ+ZSr3n+HVdiOJ/Wx17SFUpVnXKsz9GmJIIg+TMTVhUN69lj6ZOlk38lQKLeLsLLimMjrN+DcNhvs1HRgB2Rq6Os3EXnwfsoWHD2JliTvXV5Oe5Hcemutf47r4xYcKrOHTrhYK4ANbfmYIhwnukqqLYUfE3wcR60lL7/KaofsEBMpatL1pcN/ExBjpp7x/7E+dhLnyR9DPZgHo85kAyX5G/KhEtQN0sfpUOiClbIvHjvQTjPyLwtERZhwXkUydlbl33RZfXfXxGxngEVX7BlzmDMUKTouCrgXFeczNt/qV+wrn//S7pkcf4B5/ZemnAUZDhYZjMlEQ6SiaKSo5tES98YnLVlhTxKq6+lTzalb6il3beSC7ack9v/6jyVhj7+D+uS8/nn34q9H6VfGfBWcFzR+H9Ijm5yL9F7uP/9rzpz6+24/7n16H94LEWqBLjhhhtuuAmxROGef3cA4IYbbrjhhhvuf/8H6AQ75at3O7gAAAAASUVORK5CYII=' Local $bString = Binary(_WinAPI_Base64Decode($Logo)) If $bSaveBinary Then Local $hFile = FileOpen($sSavePath & "\RandomCopy10.3.1.png", 18) FileWrite($hFile, $bString) FileClose($hFile) EndIf Return $bString EndFunc ;==>_Logo Func _WinAPI_Base64Decode($sB64String) Local $aCrypt = DllCall("Crypt32.dll", "bool", "CryptStringToBinaryA", "str", $sB64String, "dword", 0, "dword", 1, "ptr", 0, "dword*", 0, "ptr", 0, "ptr", 0) If @error Or Not $aCrypt[0] Then Return SetError(1, 0, "") Local $bBuffer = DllStructCreate("byte[" & $aCrypt[5] & "]") $aCrypt = DllCall("Crypt32.dll", "bool", "CryptStringToBinaryA", "str", $sB64String, "dword", 0, "dword", 1, "struct*", $bBuffer, "dword*", $aCrypt[5], "ptr", 0, "ptr", 0) If @error Or Not $aCrypt[0] Then Return SetError(2, 0, "") Return DllStructGetData($bBuffer, 1) EndFunc ;==>_WinAPI_Base64DecodeDownload compiled + source code here: Random_Copy_v0.96_beta_build_2014-01-07.zipĀ Br,UEZ Edited July 26, 2014 by UEZ Please don't send me any personal message and ask for support! I will not reply! Selection of finest graphical examples at Codepen.io The own fart smells best! āHer 'sikim hıyar' diyene bir avuƧ tuz alıp koÅma!ĀÆ\_(ć)_/ĀÆĀ Ł©(āĢ®Ģ®Ģā¢Ģ)Ū¶ Ł©(-Ģ®Ģ®Ģ-Ģ)Ū¶ą« Link to comment Share on other sites More sharing options...
htclub Posted April 6, 2014 Author Share Posted April 6, 2014 Good code! But I think if this code can choice multi foler in source is better Link to comment Share on other sites More sharing options...
TechCoder Posted April 6, 2014 Share Posted April 6, 2014 then, take some action, do the work like the tips said and go fix it! UEZ told you it was a 'start' and FireFox told you to useĀ Ā _FileListToArray (which will allow you to do multiple folders, etc.) - do a search on the forum for that and you will find it. saying things like "But I think if this code can choice multi foler in source is better" when you have been handed the tools is like the old saying "Looking a gift horse in the mouth!" Ā You should be grateful of the responses, learn from them and take action on what you have seen, not expectant of someone handing you more! Link to comment Share on other sites More sharing options...
htclub Posted July 26, 2014 Author Share Posted July 26, 2014 it dont word with autoit 3.12.0 Can you fix it Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted July 26, 2014 Moderators Share Posted July 26, 2014 htclub,Over 3 months before you ran the script? Obviously not a very pressing problem. Change line #507 in UEZ's code to read:Local $aResult = DllCall($__g_hGDIPDll, "int", "GdipGetDpiX", "handle", $hGfx, "float*", 0)and it should work in 3.3.12.0. Just ignore all the "Obfuscator support has been discontinued" lines in the SciTE console. M23 Ā AnyĀ of myĀ own codeĀ posted anywhere on the forumĀ isĀ available for use by others without any restrictionĀ of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSortĀ ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- AĀ highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort,Ā edit and colourĀ ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area Ā Link to comment Share on other sites More sharing options...
UEZ Posted July 26, 2014 Share Posted July 26, 2014 Code and link updated in post #5 to run properly on 3.3.12.0.Br,UEZ Please don't send me any personal message and ask for support! I will not reply! Selection of finest graphical examples at Codepen.io The own fart smells best! āHer 'sikim hıyar' diyene bir avuƧ tuz alıp koÅma!ĀÆ\_(ć)_/ĀÆĀ Ł©(āĢ®Ģ®Ģā¢Ģ)Ū¶ Ł©(-Ģ®Ģ®Ģ-Ģ)Ū¶ą« 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