Ранее в 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)