您的位置:逆风者 VB 正文
原作者:www.upwinder.com 添加时间:2007-09-02 原文发表:2007-08-31 人气:9 来源:未知

Visual Basic 提供了过时的FileCopy语句.问题是使用该函数时并不显示文件复制对话框,也就是说,当拷贝一个大文件时,用户看不到Windows的标准
逆风者
文件复制对话框,无法从进度条上判断当前复制的进度.那么,如何做到这一点呢?请看下面:

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

只需调用ShellCopyFile FileA, FileACopy

相关文章

VB技巧-工具栏使用技巧
用类来编写数据库程序
VB从图片框控件取得颜色
在VB6中将XML传入一个TreeView控件
移除字串中不要的字符
Visual Basic使用技巧
编制自已的电话录音小程序
使用 ADO 來压缩或修复 Microsoft Access
用VB6.0编写磁盘格式化程序
VB中使用WinSock控件编写网络程序
在VB5中生成统计图形
利用VB6.0实现五线谱作曲工具
用RND()函数加密
使用Shell指令具有Wait的功能
鼠标编程小技巧二则
如何在Windows操作系统中改变文件打开方式
怎样存取注册表信息
Visual baisc中Byval与Byref的区别
用VB实现屏幕滚屏保护效果
如何用TextBox打开和保存文件

相关评论


本文章所属分类:首页 VB

  热门关键字: