我需要拷贝局域网内一个MDB数据库文件,该数据库文件无密码,但是该文件始终被某一程序打开(因采集的数据以每秒入库),我用FileCopy出现“实时的错误70:拒绝的权限”,可是从资源管理器中却可以拷贝该文件,我需要怎么做才能拷贝啦?谢谢各位。
解决方案 »
- 想学VB6的ActiveX控件编程,下载了不少大牛写的源代码,感觉看不太懂啊。查30块钱一本的VB6教程,完全没有这方面的内容?
- VB里面可不可以读XML文件啊?
- 初学者的菜菜问题,求教----感激!!!!
- 怎么制作网址更新器?求高手
- winsock占用内存问题。
- 我的Google上不了啊?你们能上吗?
- RICHBOX的问题
- 如何用vb实现显示输入法状态是的小状态条?立刻给分
- DELPHI+Interbase,当SELECT时想设只读锁定怎么办???
- 入门级的问题:如何装入一个form但不显示
- 嗨,哪位仁兄能为我提供以VB6为Client上传附件到WebService的原代码,这件事郁闷了我三四天了!!!!!!
- 数据库提供程序或其他服务返回 E_fail 状
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 '只有在 FOF_SIMPLEPROGRESS 时用
End TypePrivate Declare Function SHFileOperation Lib _
"shell32.dll" Alias "SHFileOperationA" (lpFileOp _
As SHFILEOPSTRUCT) As Long'wFunc 常数
'FO_COPY 把 pFrom 文件拷贝到 pTo。
Const FO_COPY = &H2
'FO_DELETE 删除 pFrom 中的文件(pTo 忽略)。
Const FO_DELETE = &H3
'FO_MOVE 把 pFrom 文件移动到 pTo。
Const FO_MOVE = &H1'fFlag 常数
'FOF_ALLOWUNDO 允许 Undo 。
Const FOF_ALLOWUNDO = &H40
'FOF_NOCONFIRMATION 不显示系统确认对话框。
Const FOF_NOCONFIRMATION = &H10
'FOF_NOCONFIRMMKDIR 不提示是否新建目录。
Const FOF_NOCONFIRMMKDIR = &H200
'FOF_SILENT 不显示进度对话框
Const FOF_SILENT = &H4'拷贝例子:
Dim SHFileOp As SHFILEOPSTRUCT
SHFileOp.wFunc = FO_COPY
SHFileOp.pFrom = "c:\tmp.mdb"
SHFileOp.pTo = "d:\"
SHFileOp.fFlags = FOF_ALLOWUNDO + FOF_NOCONFIRMMKDIR + FOF_SILENT
Call SHFileOperation(SHFileOp)
Call SHFileOperation(SHFileOp)
我将代码拷贝到模块中,同时写了如下函数供其它调用,运行中提示“实时的错误49:DLL调用约定错误”,在分析一下,那里错啦:
Public Sub CopyMdb(ByVal FromFile As String, ByVal ToFile As String)
Dim SHFileOp As SHFILEOPSTRUCT '拷贝例子:
SHFileOp.wFunc = FO_COPY
SHFileOp.pFrom = FromFile
SHFileOp.pTo = ToFile
SHFileOp.fFlags = FOF_NOCONFIRMMKDIR + FOF_SILENT
Call SHFileOperation(SHFileOp)
End Sub
Public Sub CopyMdb(ByVal FromFile As String, ByVal ToFile As String)
Dim SHFileOp As SHFILEOPSTRUCT '拷贝例子:
SHFileOp.wFunc = FO_COPY
SHFileOp.pFrom = FromFile
SHFileOp.pTo = ToFile
SHFileOp.fFlags = FOF_NOCONFIRMMKDIR + FOF_SILENT
Call SHFileOperation(SHFileOp)
End SubPrivate Sub Command1_Click()
Call CopyMdb("D:\test.mdb", "E:\")
End Sub'模块中
Public 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 '只有在 FOF_SIMPLEPROGRESS 时用
End TypePublic Declare Function SHFileOperation Lib _
"shell32.dll" Alias "SHFileOperationA" (lpFileOp _
As SHFILEOPSTRUCT) As LongPublic Const FO_COPY = &H2Public Const FOF_ALLOWUNDO = &H40
Public Const FOF_NOCONFIRMATION = &H10
Public Const FOF_NOCONFIRMMKDIR = &H200
Public Const FOF_SILENT = &H4
Public Sub CopyMdb(ByVal FromFile As String, ByVal ToFile As String)
Dim SHFileOp As SHFILEOPSTRUCT '拷贝例子:
SHFileOp.wFunc = FO_COPY
SHFileOp.pFrom = FromFile
SHFileOp.pTo = ToFile
SHFileOp.fFlags = FOF_NOCONFIRMMKDIR + FOF_SILENT
Call SHFileOperation(SHFileOp)
End SubPrivate Sub Command1_Click()
Call CopyMdb("D:\test.mdb", "E:\")
End Sub
'---------------------------------------------------------
这样放置代码,运行提示:
Dim SHFileOp As SHFILEOPSTRUCT '用户定义类型未定义
模块中已经定义了,难道我的不支持自定义数据结构?不会吧,
我的xp p+vb6
修改PrivateType SHFILEOPSTRUCT 为 Public Type SHFILEOPSTRUCT 得到解决可是还提示“实时的错误49:DLL调用约定错误”,那里错啦? 55555555.
"shell32.dll" Alias "SHFileOperationA" (lpFileOp _
As SHFILEOPSTRUCT) 时这里少了---> As Long,没有错误提示了,可是文件没有拷贝成功,怪了,模块代码同viena(维也纳nn-实心木头人) ,Form中代码如下,看一看还有没问题,我没看出来:Private Sub CopyMdb(ByVal FromFile As String, ByVal ToFile As String)
Dim SHFileOp As SHFILEOPSTRUCT
SHFileOp.wFunc = FO_COPY
SHFileOp.pFrom = FromFile
SHFileOp.pTo = ToFile
SHFileOp.fFlags = FOF_NOCONFIRMMKDIR + FOF_SILENT
Call SHFileOperation(SHFileOp)
End SubPrivate Sub CmdGetDat_Click()
Dim cNetMdbFile As String, cAppMdbFile As String
cNetMdbFile = m_NetPath & "data_base.mdb"
If FileCheck(cNetMdbFile) = False Then
MsgBox "Îļþ" & cNetMdbFile & "²»´æÔÚ£¡ÇëËÙÓëϵ¡£"
Exit Sub
End If
cAppMdbFile = App.Path & "\Dat\BASE.MDB"
Call CopyMdb(cNetMdbFile, cAppMdbFile)
End Sub
Const FOF_SILENT = &H4 ''FOF_SILENT 不显示进度对话框
请问那显示进度对话框的常数值为多少?
解决后马上结贴。