Как организовать длительное копирование файлов с анимац картинкой летящих листочков как в Windows - VB

Узнай цену своей работы

Формулировка задачи:

Как организовать длительное копирование файлов с анимационной картинкой летящих листочков как в Windows и ProgressBar'ом, и желательно оценкой времени оставшегося до конца копирования. Если есть пример или готовый компонент киньте ,плиз, на мыло!

Решение задачи: «Как организовать длительное копирование файлов с анимац картинкой летящих листочков как в Windows»

textual
Листинг программы
  1. '---------------------------
  2. 'Copy any file (include open files)
  3. '--------------------------------
  4. Private Declare Function SHFileOperation Lib 'shell32.dll' _
  5.     Alias 'SHFileOperationA' (lpFileOp As SHFILEOPSTRUCT) As Long
  6.  
  7. Private Type SHFILEOPSTRUCT
  8.     hwnd As Long                ' Window owner of any dialogs
  9.    wFunc As Long               ' Copy, move, rename, or delete code
  10.    pFrom As String             ' Source file
  11.    pTo As String               ' Destination file or directory
  12.    fFlags As Integer           ' Options to control the operations
  13.    fAnyOperationsAbortedLo As Integer ' Indicates partial failure
  14.    fAnyOperationsAbortedHi As Integer
  15.     hNameMappingsLo As Long     ' Array indicating each success
  16.    hNameMappingsHi As Long
  17.     lpszProgressTitleLo As Long ' Title for progress dialog
  18.    lpszProgressTitleHi As Long
  19. End Type
  20.  
  21.  
  22.  
  23. ' Better version of FileCopy (CopyAnyFile) and matching MoveAnyFile,
  24. ' DeleteAnyFile, and RenameAnyFile
  25. Function CopyAnyFile(sSrc As String, sDst As String, _
  26.                      Optional ByVal fConfirmMsgShow As Boolean = True, Optional ByVal fProgressShow As Boolean = True, _
  27.                      Optional Owner As Long) As Boolean
  28.     If True Then    'в NT не будет работать!!
  29.        Dim fo As SHFILEOPSTRUCT, f As Long
  30.         fo.wFunc = 2 'FO_COPY
  31.        Debug.Print TypeName(fo.wFunc)
  32.         fo.pFrom = sSrc
  33.         fo.pTo = sDst
  34.         fo.fFlags = SetOpFlagsForCopyAny(fConfirmMsgShow, fProgressShow)
  35.         fo.hwnd = Owner
  36.         ' Mask out invalid flags
  37.        fo.fFlags = fo.fFlags And 989   'FOF_COPYFLAGS
  38.        f = SHFileOperation(fo)
  39.         CopyAnyFile = (f = 0)
  40.     Else         ' For Windows NT 3.51
  41.        On Error Resume Next
  42.         ' FileCopy expects full name of destination file
  43.        FileCopy sSrc, sDst
  44.         If Err Then
  45.             MsgBox 'Path error.', vbCritical, 'Error'
  46.        End If
  47.         CopyAnyFile = (Err = 0)
  48.     End If
  49. End Function
  50.  
  51. Private Function SetOpFlagsForCopyAny(Optional ByVal fConfirmMsgShow As Boolean = True, Optional ByVal fProgressShow As Boolean = True) As Long
  52.     Dim lFlags As Long
  53.     lFlags = 0
  54.     If Not fConfirmMsgShow Then lFlags = lFlags Or 16        'FOF_NOCONFIRMATION
  55.    If fProgressShow Then lFlags = lFlags Or 256          'FOF_SIMPLEPROGRESS
  56.    SetOpFlagsForCopyAny = lFlags
  57. End Function

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

7   голосов , оценка 4.143 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы