Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Контрол для копирования с индикацией ...... ? Добавлено: 11.06.04 10:20  

Автор вопроса:  Grayich | Web-сайт: grayich.narod.ru | ICQ: 208280504 

Де б его найти контрол для копирования папок, файлов  с индикацией (прогресом).

или может есть возможность при копировании через FSO узнавать текущее состояние ?

 

Ответить

  Ответы Всего ответов: 7  

Номер ответа: 1
Автор ответа:
 Pashenko



ICQ: 176176951 

Вопросов: 14
Ответов: 655
 Профиль | | #1 Добавлено: 11.06.04 10:29
Раза два уже точно обсуждали.

'in a form (Form1)
Private Sub Form_Load()
'KPD-Team 2001
'URL: http://www.allapi.net/
'E-Mail: KPDTeam@Allapi.net
Dim Ret As Long
'set the graphics mode to persistent
Me.AutoRedraw = True
'print some text
Me.Print "Click the form to abort the filecopy"
'show the form
Me.Show
'start copying
Ret = CopyFileEx("c:\verybigfile.ext", "c:\copy.ext", AddressOf CopyProgressRoutine, ByVal 0&, bCancel, COPY_FILE_RESTARTABLE)
'show some text
Me.Print "Filecopy completed " + IIf(Ret = 0, ";(ERROR/ABORTED)", "successfully";)
End Sub
Private Sub Form_Click()
'cancel filecopy
bCancel = 1
End Sub
'in a module
Public Const PROGRESS_CANCEL = 1
Public Const PROGRESS_CONTINUE = 0
Public Const PROGRESS_QUIET = 3
Public Const PROGRESS_STOP = 2
Public Const COPY_FILE_FAIL_IF_EXISTS = &H1
Public Const COPY_FILE_RESTARTABLE = &H2
Public Declare Function CopyFileEx Lib "kernel32.dll" Alias "CopyFileExA" (ByVal lpExistingFileName As String, ByVal lpNewFileName As String, ByVal lpProgressRoutine As Long, lpData As Any, ByRef pbCancel As Long, ByVal dwCopyFlags As Long) As Long
Public bCancel As Long
Public Function CopyProgressRoutine(ByVal TotalFileSize As Currency, ByVal TotalBytesTransferred As Currency, ByVal StreamSize As Currency, ByVal StreamBytesTransferred As Currency, ByVal dwStreamNumber As Long, ByVal dwCallbackReason As Long, ByVal hSourceFile As Long, ByVal hDestinationFile As Long, ByVal lpData As Long) As Long
'adjust the caption
Form1.Caption = CStr(Int((TotalBytesTransferred * 10000) / (TotalFileSize * 10000) * 100)) + "% complete..."
'allow user input
DoEvents
'continue filecopy
CopyProgressRoutine = PROGRESS_CONTINUE
End Function

Ответить

Номер ответа: 2
Автор ответа:
 DBC



Вопросов: 1
Ответов: 1
 Профиль | | #2 Добавлено: 11.06.04 15:03

Найди контрол mscomctl и воспользуйся progressbar

Ответить

Номер ответа: 3
Автор ответа:
 Grayich



ICQ: 208280504 

Вопросов: 56
Ответов: 164
 Web-сайт: grayich.narod.ru
 Профиль | | #3
Добавлено: 11.06.04 17:53
2 DBC очень смешно

Ответить

Номер ответа: 4
Автор ответа:
 Grayich



ICQ: 208280504 

Вопросов: 56
Ответов: 164
 Web-сайт: grayich.narod.ru
 Профиль | | #4
Добавлено: 13.06.04 13:57
2 Pashenko Одно плохо, копирует тока файлы :(

Ответить

Номер ответа: 5
Автор ответа:
 Grayich



ICQ: 208280504 

Вопросов: 56
Ответов: 164
 Web-сайт: grayich.narod.ru
 Профиль | | #5
Добавлено: 14.06.04 12:11
Дето был на сайте тут пример по копированию с помощью API с использованием стандартного окна копирования
ВОПРОС:
            а как там убрать кнопку Cencel
??

Ответить

Номер ответа: 6
Автор ответа:
 Grayich



ICQ: 208280504 

Вопросов: 56
Ответов: 164
 Web-сайт: grayich.narod.ru
 Профиль | | #6
Добавлено: 17.06.04 11:24
неужели не у кого небыло такой "проблеммы" ?

Ответить

Номер ответа: 7
Автор ответа:
 Grayich



ICQ: 208280504 

Вопросов: 56
Ответов: 164
 Web-сайт: grayich.narod.ru
 Профиль | | #7
Добавлено: 18.06.04 11:56
вот исход который меня устраивает

Option Explicit
Private Type SHFILEOPSTRUCT
    hwnd As Long
    wFunc As Long
    pFrom As String
    pTo As String
    fFlags As Integer
    fAnyOperationsAborted As Long
    hNameMappings As Long
    lpszProgressTitle As String
End Type
Private Declare Function SHFileOperation Lib "Shell32.dll" Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long
Private Sys As SHFILEOPSTRUCT
Private Const FO_COPY = &H2& 'Copies the files specified in the
'pFrom member to the location
'specified in the pTo member.
Private Const FO_DELETE = &H3& 'Deletes the files specified in pFrom
'(pTo is ignored.)
Private Const FO_MOVE = &H1& 'Moves the files specified in pFrom
'to the location specified in pTo.
Private Const FO_RENAME = &H4& 'Renames the files specified in pFrom
Private Const FOF_SILENT = &H4
Private Const FOF_SIMPLEPROGRESS = &H100
Private Const FOF_NOCONFIRMATION = &H10
Private Const FOF_NOCONFIRMMKDIR = &H200
Private Const FOF_RENAMEONCOLLISION = &H8

Private Sub Form_Load()
Me.Show
Sys.wFunc = FO_COPY
Sys.pFrom = "c:\temp\*.*"
Sys.pTo = "d:\temp"
Sys.hwnd = Form1.hwnd
Sys.fFlags = FOF_NOCONFIRMATION + FOF_SIMPLEPROGRESS
Call SHFileOperation(Sys)
End Sub

НО ! как убрать кнопку "Отмена" ?????????

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам