使用VB复制正被打开的文件

[复制链接]
查看11 | 回复3 | 2011-8-1 13:56:15 | 显示全部楼层 |阅读模式
我现在想复制一个文件,是ACCESS数据库,mdb格式的,但是这个数据库一整天都是被打开的,我想复制怎么也不行。
求一段可以复制的VB代码。最好是出现系统自带的进度框。完美解决再加100分!
Private Sub Command1_Click()
Dim strDeskPath As String
Set WshShell = CreateObject("WScript.Shell")
FileCopy "E:\DB\ABC.mdb", "C:\Documents and Settings\tgfci\桌面\cr.mdb"
MsgBox "ok!"
End Sub
这是我原先写的代码,请指正。
------------------------------------
08/01追加20分,为新问题

回复

使用道具 举报

千问 | 2011-8-1 13:56:15 | 显示全部楼层
lz是在想操作以独占方式打开的文件,方法有,都很麻烦1、寻找打开文件的句柄
如果文件由某个进程打开,那么这个进程就拥有了它的句柄。在我第二篇关于API拦截的文章里我讲解了如何搜索需要的句柄并用它打开进程,要访问已打开的文件,我们也可以使用这种方法。我们需要使用ZwQuerySystemInformation函数来枚举句柄,将每一个句柄都用DuplicateHandle进行复制,确定句柄属于那个文件(ZwQueryInformationFile),如果是要找的文件,就将句柄拷贝。 对于文件的拷贝剩下的工作只是找到所需句柄后用ReadFile读取它。这个方法只适用于确定文件被那个进程占用。2、修改句柄访问权限
所有被占...
回复

使用道具 举报

千问 | 2011-8-1 13:56:15 | 显示全部楼层
filecopy函数不能复制正打开的文件,还是试试dos下复制函数吧Private Sub Command1_Click()Shell "cmd /c copy E:\DB\ABC.mdb C:\Documents and Settings\tgfci\桌面"name "C:\Documents and Settings\tgfci\桌面\ABC...
回复

使用道具 举报

千问 | 2011-8-1 13:56:15 | 显示全部楼层
只有关闭再复制啦,安全模式手动复制...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行