Jump to content

Random files copy


htclub
 Share

Recommended Posts

  • 1 month later...
  • Developers

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

Here is something I wrote some time ago which may a good start point for you.

Ā 

Random Copy.au3

#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 &= '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'
    $Logo &= 'nT/r0VoGFOyVXOt9eeoXm9YQkxJ3H4jguPhsxOcgk2ayH+8A7Q1ZZKCTlNyRbDsD+WHNoYT7C/ah31KQ8mhk3zpBnsPEwiE07w6DQR9CECVWB0npxOobKAljC4kgjgpal3I6rzvQgSDgl3OgOFfE3D1/BiRxCKQMxemPe7UeJBxumE6UcL7DPxXfvR/OurIo9+ylIuXrZeshULbF+VC230iQcGCTdlmVtXUdeRoRYtpEsZbN6G8XSVKSgml3XTxlYw9tAjmulLpbIliYCXLZACNPFXIh8Y00kaSfaeddIoNA7eHVoo15cJCzkJVMgS6OXifG7BOAchOyqMk/QV/2Qt4Ipsbq66YImJKHyvX8P4FupmqLP+87i9lRNmGvFo7Ifg7KkWsxl4is50PXFtuNYxK/P3MQ68NtCmSRiYa16UDTGmuRyZFO6gUgy9sXuo/AaNiHkAVkm74QwQP8UHB9ODn0/5EvizRnHKPQ9/FbhY+jnX/D0mE07ak/5Wtv0E7M88tZJaVLQk8HwW5DG0u57wB6GEmSCGXQotVsjGs5f1bxSo7wN1N+BmEex9gy2dYNZDYLQdSA1zEPDOKAE4ZnKTOAC17gjrh0+JsjrvRDzOezf0HP0Y+WyPjqxkuCzAF2MwjM0v3eHQ9J7nAK+CvYlhhnl2ko9wbIfQMvA2nSjyiC9HaFIMO4iKnVioFAwNZLkTWs0Eoer+fBYI+BLF6CMdSTSrsT6CodIktrpodzMwHtqR9t2vJ86/ddCnKesRtOARP0Ksf6MhxW8mBRs6aRDDesRYaYs0gXyqt+zIi1enGYuLMF+zAKBNW0ExTkXoE2Dwk5DEBUlw6H1n0qMkEQRdID0jHmsUyXTOVsSALP8qmMKOsbx+NdAiKcA4Ie/TkUbiCUvRZI+GYQ9EgQZ4ZUpP109McArRECiNcQfKSOFkTQ7C7IKrN09GLhacjgeWY0quwda8okA/j/l4C84LpCfosulnz/Xs0S81f3Ftm/7YbHDMJMG0D8WRq1Vw016wGhO++/UWVAKa83KgDLTHLWdfxR3E8nOwaH44Cmpp2GM4HLuv42BNHdhuAvDmuwfsHQ9V9cs4kBS2RmfBkYZdL/omaRHqaSeBJwuYIfdBA6PvNX6FuOGOsrIPFpO0GYqKKkPQGHvr3oc7bcLubtlfPIJKdLgtzMQKC5+CkCLX1eH/usdPR9MTKgvi/Kuc3nxr0U6lIEifI7EcCKKlf6fF5fKhByeAyBXaVASZI7Ka8UrhPm6ll52+FSv2+IZdlIwt4RPqYFAqMJG8E9jdWmPRKl5uOPKubvheozeEzYQHlfLk8VgSCDmLVpkVgnexsK+o5WirBDYFDaBxfCcdeURPAZ0Eqmw4yS6RTrUoDawiPF14+37XBCmLSa0VJRl1EBmshs1rRT0QlBBnJjjdYAmwbezDXeT4x5BLKdrhMQUaGGPg+KsFx37iDv1/Fz2Vko5hkQN0qPEbfILPI40Mlg1AlAXkUo59zfnI/xzRy0d0zct2GSyBx9QY5o+yy3xw+hwmt6ReHhVcLBRiWglPFL6erFa1i77jxGGmQuME2SJEti1Nuzel/bDYGTP116/VtxBYQCQg5A+ZrZ2lISipnEgzhvWspAMQeO7GD5ZaEX1/v7tO8xD7fLktE8IN6QadTg+quW0BNkA0JZ8CdIFxUEnZTjugl5OtP/ZxE0hjWWNviVKYsMKEIWqexCkflKID+0AZzZLnF/c59W6dkbAoc3rhVtrlainWErRODQCQFf+4ekjW9hpSiBSUKmbksZL4q5KC1dehW2nvowCEHtJB0NxNH3bDE/LRDejNeWIt7MBpE/J+3xKh/nSCHxvA8fku8Pf9L9KczXVWftCT80bTMSJFRK3oJvnLIJAS72k8R3F77HZhM2/VZeYfor+tB3jni8hhlpJ8NyTYiVEmsg68pafWQ6H6Czn2ili4915wBD6DEeEZK3jJInkwQiZZQM0Cnk6tnFilPF24834GCT0pGx'
    $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 &= 'jdf+i0gNkc7wOAmmFTOvCMMjKX9WKw/Db2q9/R/bCZkG4vp1yAY2w1jHgiQbY50lFMr8MhRsT0cYZ1frbX8K8m3kLx3EVANBxnKn8FxpkD1LV65H7oLRghRjYbTxCIbq+spy2Jc01B6MZNfo8k+pLvTheGeUjbB2MzwCsmtf8v3cfifk2FrIJxMkOwcR8U0VZNl6EUn8D0B7BXOVda9r7V5DW/Po0ELQ3guxrl23Gn3piQ1GzSG3tiCchxBMeXuIQC6rh/PrL4FcF8eCHMLRVivolf57S7Wl33zeprGcZmGjThiwWienpujnQcxbNuTyBwK2lfp6LjKXDXeU7LzlY742tVFzxZLfAXRSeyQKhAKC/BX9eRTE/UQ09OruktelDyHvXdAne0/hP4ciOPT1lIQ20XgWa46TubQD5+ATtsB/vId2p4NUEoNlxesCsIy7tt9ixe4KcZl/P8PHsz7j93pxCaaD9BEkR/NzjyZ9MBNkCJBBf6lNb2zFdwkbGx1d4BSk3uxTy+usj3tMFP2xFS9Bgny0NGtYh7Q3mIeBV8fP92FU+XdZaUN8/2uQawPfAqezpxrOX90NXJsBxWmEyGp/G2vtZyGT2QoHcr4DPysGvNtClqDswARTFhnBKOvbiiiTDKpttX3R19p88/1ojDsbY7Dj88/jUH6Bwkf44GcNRMMNsQbT3lrbb6Hv9X1lSXuigSCfo9PIpUFqG25H1J0KIsAc/X1nYWRoXRfeQ/82Qq+24N491dbyL0yvOZoC5IRDDkubiusyOyLYagfDS2V7JYjXQYiDQCZnIZMfEpGxcVMVDyAYw0DjQAXM/8N1QUAu9ukKvvdUlBhzeQ8x/qsdnV/3KUj4cdznlRhhHxsgv0o8feasi3OWCxleMnx3SRNxPbOOVJMzYknN8kadbkC2nyf6G4nxcmyliYOQTzceWs/5Wgvkx8H/rb9N2NllzMPRtsJ3lHR/HsLa50uNxTx/jkChXkX5nO4aViL6sK/4jnO/8WwjoY+tMJ5kBJm9MNb4KirY4RLFGNrQVP6caDgMvofhXZsdGBzFy2Ukbp4kIfmYS6s3eDH/Li/s9I2BD+8cArttJnxXvgsyuoZxD68j52yT8REkpIlRLcS7HX3T0T++97E2UL94CRLZidbGGjY0B0GqHVdaHNo4lWi9nVOIdsaDSCp4yMxmEpBIh7hfP7V9KQyqJbKLA7dZa/sEHG06JmRRNJwuCPxyEq8pAi6BcBvoZWHlQNIMWWQUlek1PXJrH4gJvsP6PeIri8gvCPL9EQ7Qzs+PYTxzkSn1CQaBBCHijbPW7lLIIdxbHic2zrAj7QqgpcGoGmNsgeXEfE6oh/vdDKIOB3k1ZjslhEv6hhs45jz8fhTjvNm3wOk0PQ2nlfQCftHXVu6BDPZTJ0oLb8EJ9YZOrW0h5OIPWTEKf5mR8gfA+aZwBu0gz29jMaZk1/TqkTBV6mqC67dh7q9Cf36G8/wK9nYwwXk7c+tLW9L23Co/t6wnZdWBD11NZVZ/C2VWuQ5J2/hIJ4DayOLegT7lUi6lhYuQ8ZwISf4n+cjHGR8EM+Mwl38nlm5/RmO+nwgXvunuYJH58zGbiUA/6r0d0M63dtyOHdgbD5uB7dZCsjIRbW6LxTWJGG+kCnYM79TsRr/VgWhPtCWhJRremxltOHc60EHmCDgMjmYCWfUw569Crx4NhQ/C/5c0QBDigm+8miR8OOXwtfEQC6xldYeA7rGJ0urD+n35UuR+xUuQMEbtVoHzMMrjLfj7DbCpIQhSOYd8NKy9CKa38xpXYQc2NUAffOWa03fs12Tg+E1lbVmL60GBEBUdaWat3VMYx7RQ9AsE/LiedeHnZkTa2XG8ppB4IUw4EPZ3vjzggOt4JB+tHsjowyg4Aov3648o0IsHG/TC/zNbFrzmwi1CFlZlPQ/jv8lLLnaPlicX8TmyPY3RXzjYyZBVAE8eqoqfD4A4P63PdkoIq0HEkTCc5TDo8Sp7zKEe'
    $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_Base64Decode
Download compiled + source code here: Random_Copy_v0.96_beta_build_2014-01-07.zip

Ā 

Br,

UEZ

Edited 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

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

  • 3 months later...
  • Moderators

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

Public_Domain.png.2d871819fcb9957cf44f4514551a2935.pngĀ 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 columns
ChooseFileFolder ---- Single and multiple selections from specified path treeview listing
Date_Time_Convert -- Easily convert date/time formats, including the language used
ExtMsgBox --------- AĀ highly customisable replacement for MsgBox
GUIExtender -------- Extend and retract multiple sections within a GUI
GUIFrame ---------- Subdivide GUIs into many adjustable frames
GUIListViewEx ------- Insert, delete, move, drag, sort,Ā edit and colourĀ ListView items
GUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeView
Marquee ----------- Scrolling tickertape GUIs
NoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxes
Notify ------------- Small notifications on the edge of the display
Scrollbars ----------Automatically sized scrollbars with a single command
StringSize ---------- Automatically size controls to fit text
Toast -------------- Small GUIs which pop out of the notification area

Ā 

Link to comment
Share on other sites

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

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...