Ранее в AutoIt3 использовал функцию копирования средствами Windows, нашёл также тему на PureBasic. Но сначала попробовал использовать ранее проверенную годами, хотя в принципе они практически идентичны, кроме: в AutoIt3 была проверка GetLastError и в AutoIt3 варианте было как я понял возможность брошенные в окно файлы, разделённые Chr(10) использовать как копирование выделенных файлов/папок, то есть множественный выбор, но я не стал это делать, а просто вырезал эту часть кода воспринимая путь как одну строку.
; http://www.autoitscript.com/forum/topic/11888-yet-another-copy-With-progress/
EnableExplicit
#FO_MOVE = $0001
#FO_COPY = $0002
#FO_DELETE = $0003
#FO_RENAME = $0004
#FOF_MULTIDESTFILES = $0001
#FOF_CONFIRMMOUSE = $0002
#FOF_SILENT = $0004
#FOF_RENAMEONCOLLISION = $0008
#FOF_NOCONFIRMATION = $0010
#FOF_WANTMAPPINGHANDLE = $0020
#FOF_ALLOWUNDO = $0040
#FOF_FILESONLY = $0080
#FOF_SIMPLEPROGRESS = $0100
#FOF_NOCONFIRMMKDIR = $0200
#FOF_NOERRORUI = $0400
#FOF_NOCOPYSECURITYATTRIBS = $0800
#FOF_NORECURSION = $1000
#FOF_NO_CONNECTED_ELEMENTS = $2000
#FOF_WANTNUKEWARNING = $4000
#FOF_NORECURSEREPARSE = $8000
Procedure CopyWithProgress(sFrom$, sTo$)
Protected DllRet, nError = 0
Protected SHFileOp.SHFILEOPSTRUCT
SHFileOp\hwnd = 0
SHFileOp\wFunc = #FO_COPY
SHFileOp\pFrom = @sFrom$
SHFileOp\pTo = @sTo$
SHFileOp\fFlags = #FOF_NOCONFIRMMKDIR | #FOF_NOCONFIRMATION | #FOF_NOERRORUI
SHFileOp\fAnyOperationsAborted = 0
SHFileOp\hNameMappings = 0
SHFileOp\lpszProgressTitle = 0
DllRet = SHFileOperation_(SHFileOp)
If DllRet = 0
nError = GetLastError_()
ProcedureReturn nError
EndIf
If SHFileOp\fAnyOperationsAborted
nError = -1
EndIf
If nError
ProcedureReturn nError
EndIf
ProcedureReturn 0
EndProcedure
; 0 = удачно
CopyWithProgress("путь_источник", "путь_назначения")А это с чего всё началось: yandex upload.ee
Отредактировано AZJIO (15.08.2021 08:07:23)