Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Аватара для Creat0R

Must AutoIt


Сообщения: 3054
Благодарности: 1009

Профиль | Сайт | Отправить PM | Цитировать


Цитата cra5h_:
как можно сделать видео(анимация) как в проводнике Windows при копировании/перемещении(документы летают из папки в папку) ? »
Как вариант, вытащить из видео кадры, и менять их в callback-функций __FCSP_ProgressRoutine используя глобальный счётчик.

Ну или можно совсем использовать перемещение файлов с отображением системного диалога:

Код: Выделить весь код
#Region consts
Global Const $FOR_MOVE = 0x0001
Global Const $FOR_COPY = 0x0002
Global Const $FOR_DELETE = 0x0003
Global Const $FOR_RENAME = 0x0004

Global Const $FOF_MULTIDESTFILES = 0x0001
Global Const $FOF_CONFIRMMOUSE = 0x0002
Global Const $FOF_SILENT = 0x0004
Global Const $FOF_RENAMEONCOLLISION = 0x0008
Global Const $FOF_NOCONFIRMATION = 0x0010
Global Const $FOF_WANTMAPPINGHANDLE = 0x0020
Global Const $FOF_ALLOWUNDO = 0x0040
Global Const $FOF_FILESONLY = 0x0080
Global Const $FOF_SIMPLEPROGRESS = 0x0100
Global Const $FOF_NOCONFIRMMKDIR = 0x0200
Global Const $FOF_NOERRORUI = 0x0400
Global Const $FOF_NOCOPYSECURITYATTRIBS = 0x0800
Global Const $FOF_NORECURSION = 0x1000
Global Const $FOF_NO_CONNECTED_ELEMENTS = 0x2000
Global Const $FOF_WANTNUKEWARNING = 0x4000
Global Const $FOF_NORECURSEREPARSE = 0x8000
#Endregion consts
;

$iFlags = BitOR($FOF_FILESONLY, $FOF_ALLOWUNDO, $FOF_RENAMEONCOLLISION, $FOF_NOCONFIRMMKDIR)

_CopyWithProgress("C:\File.avi", "D:\File.avi", $FOR_MOVE, $iFlags)

Func _CopyWithProgress($sFrom, $sTo, $OPERATION_MODE, $GENERAL_MODE)
    ; version 1 by SumTingWong on 5/26/2006
    ; http://www.autoitscript.com/forum/in...howtopic=11888
    ; updated by lod3n on 6/5/2007

    Local $SHFILEOPSTRUCT
    Local $pFrom, $pTo, $aDllRet, $nError = 0

    If FileExists($sTo) And StringRight($sFrom, 3) <> "*.*" And StringInStr(FileGetAttrib($sFrom), "D") Then $sFrom &= "\*.*"

    $SHFILEOPSTRUCT = DllStructCreate("int;uint;ptr;ptr;uint;int;ptr;ptr")
    If @error Then Return "nostruct"
    ; hwnd
    DllStructSetData($SHFILEOPSTRUCT, 1, 0)
    ; wFunc
    DllStructSetData($SHFILEOPSTRUCT, 2, $OPERATION_MODE)
    ; pFrom
    $pFrom = DllStructCreate("char[" & StringLen($sFrom) + 2 & "]")
    ; pFrom will now be null-terminated at StringLen($sFrom)+1
    DllStructSetData($pFrom, 1, $sFrom)
    For $i = 1 To StringLen($sFrom) + 2
        If DllStructGetData($pFrom, 1, $i) = 10 Then DllStructSetData($pFrom, 1, 0, $i)
    Next
    ; We need a second null at the end
    DllStructSetData($pFrom, 1, 0, StringLen($sFrom) + 2)
    DllStructSetData($SHFILEOPSTRUCT, 3, DllStructGetPtr($pFrom))
    ; pTo
    $pTo = DllStructCreate("char[" & StringLen($sTo) + 2 & "]")
    ; pTo will now be null-terminated at StringLen($sTo)+1
    DllStructSetData($pTo, 1, $sTo)
    ; We need a second null at the end
    DllStructSetData($pTo, 1, 0, StringLen($sTo) + 2)
    DllStructSetData($SHFILEOPSTRUCT, 4, DllStructGetPtr($pTo))
    ; fFlags
    DllStructSetData($SHFILEOPSTRUCT, 5, $GENERAL_MODE)
    ; fAnyOperationsAborted
    DllStructSetData($SHFILEOPSTRUCT, 6, 0)
    ; hNameMappings
    DllStructSetData($SHFILEOPSTRUCT, 7, 0)
    ; lpszProgressTitle
    DllStructSetData($SHFILEOPSTRUCT, 8, 0)
    $aDllRet = DllCall("shell32.dll", "int", "SHFileOperation", "ptr", DllStructGetPtr($SHFILEOPSTRUCT))
    $iRetCode = $aDllRet[0]
    $pFrom = 0
    $pTo = 0
    $SHFILEOPSTRUCT = 0

    If $iRetCode <> 0 Then Return SetError($nError, $iRetCode, False)
    Return True
EndFunc   ;==>_CopyWithProgress

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

Это сообщение посчитали полезным следующие участники:

Отправлено: 13:16, 29-01-2010 | #11