| Visual Basic 提供了過(guò)時(shí)的FileCopy語(yǔ)句.問(wèn)題是使用該函數(shù)時(shí)并不顯示文件復(fù)制對(duì)話框,也就是說(shuō),當(dāng)拷貝一個(gè)大文件時(shí),用戶看不到Windows的標(biāo)準(zhǔn) 文件復(fù)制對(duì)話框,無(wú)法從進(jìn)度條上判斷當(dāng)前復(fù)制的進(jìn)度.那么,如何做到這一點(diǎn)呢?請(qǐng)看下面: Public Type SHFILEOPSTRUCT hWnd As Long wFunc As Long pFrom As String pTo As String fFlags As Integer fAnyOperationsAborted As Boolean hNameMappings As Long lpszProgressTitle As String End Type Public Declare Function SHFileOperation Lib "shell32.dll" Alias _ "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long Public Const FO_COPY = &H2 Public Const FOF_ALLOWUNDO = &H40 Public Sub ShellCopyFile(Source As String, Dest As String) Dim result As Long Dim fileop As SHFILEOPSTRUCT With fileop .hwnd = 0 .wFunc = FO_COPY 'The files to copy separated by Nulls and terminated by 2 nulls .pFrom = Source & vbNullChar & vbNullChar 'or to copy all files use this line '.pFrom = "C:\*.*" & vbNullChar & vbNullChar 'The directory or filename(s) to copy into terminated in 2 nulls .pTo = Dest & vbNullChar & vbNullChar .fFlags = FOF_ALLOWUNDO End With result = SHFileOperation(fileop) If result <> 0 Then 'Operation failed 'Msgbox the error that occurred in the API. MsgBox Err.LastDllError, vbCritical Or vbOKOnly Else If fileop.fAnyOperationsAborted <> 0 Then MsgBox "Operation Failed", vbCritical Or vbOKOnly End If End If End Sub 只需調(diào)用ShellCopyFile FileA, FileACopy | 
|  | 
來(lái)自: a_cheng > 《VB學(xué)習(xí)》