炉石盒子记牌器用不了:求教:vb小程序

来源:百度文库 编辑:高考问答 时间:2024/05/03 05:30:57
写个VB小程序或vbs脚本,实现以下功能:

1、将“金山毒霸”文件夹下的所有文件(路径:G:\软件备份\金山毒霸\)复制到这个文件夹:F:\KAV2005\
2、将F:\My Documents\winmine.exe覆盖到F:\KAV2005\winmine.exe

3、然后运行F:\KAV2005\update.exe

VB提供的Filecopy函数一次只能拷贝删除一个文件,删除的文件不可恢复。用API函数SHFileOperation可以实现多个文件(允许使用通佩符)甚至是整个目录(包括目录中的下级子目录)的移动、拷贝,也可以完成多个文件(允许使用通佩符)甚至是整个目录(包括目录中的下级子目录)的删除,而且这种删除是可恢复的——将全部删除的文件放入回收站而不是彻底删除。下面介绍该API函数的使用示例。
先添加一个模块,将如下代码粘帖于内。
Declare Function SHFileOperation Lib "Shell32.dll" Alias "SHFileOperationA" (lpFileOp As SHFILEOPSTRUCT) As Long
Type SHFILEOPSTRUCT
Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long
hwnd As Long '窗口句柄
wFunc As Long '执行的操作
pFrom As String '原地点
pTo As String '目标地点
fFlags As Long '操作执行方式
fAnyOperationsAborted As Long '错误代码返回
hNameMappings As Long
lpszProgressTitle As String
End Type
Public Const FO_MOVE As Long = &H1
Public Const FO_COPY As Long = &H2
Public Const FO_DELETE As Long = &H3
Public Const FO_RENAME As Long = &H4
Public Const FOF_MULTIDESTFILES As Long = &H1
Public Const FOF_CONFIRMMOUSE As Long = &H2
Public Const FOF_SILENT As Long = &H4
Public Const FOF_RENAMEONCOLLISION As Long = &H8
Public Const FOF_NOCONFIRMATION As Long = &H10
Public Const FOF_WANTMAPPINGHANDLE As Long = &H20
Public Const FOF_CREATEPROGRESSDLG As Long = &H0
Public Const FOF_ALLOWUNDO As Long = &H40
Public Const FOF_FILESONLY As Long = &H80
Public Const FOF_SIMPLEPROGRESS As Long = &H100
Public Const FOF_NOCONFIRMMKDIR As Long = &H200

在主窗体上放置一个命令按钮,将如下代码粘帖在代码窗口中。按下按钮可以操作对应目录。
Private Sub Command1_Click()
Dim DelFileOp As SHFILEOPSTRUCT
Dim result As Long
With DelFileOp
.hwnd = Me.hwnd
.wFunc = FO_COPY '(这三行代码完成拷贝)
.pFrom = "G:\软件备份\金山毒霸\*" & vbNullChar & vbNullChar
.pTo = "F:\KAV2005"
.fFlags = FOF_ALLOWUNDO
End With
result = SHFileOperation(DelFileOp)
If result <> 0 Then ' Operation failed
If Err.LastDllError <> 0 Then
MsgBox Err.LastDllError ' Msgbox the error that occurred in the API.
End If
Else
If DelFileOp.fAnyOperationsAborted <> 0 Then
MsgBox "Operation Failed"
End If
End If
CopyFile("F:\My Documents\winmine.exe","F:\KAV2005\winmine.exe")
'打开文件
ShellExecute Me.hwnd, "open",“F:\KAV2005\update.exe", vbNullString, vbNullString, 3
End Sub
上述示例将完成G:\软件备份\金山毒霸\*.*文件到F:\KAV2005\目录的移动,如果目的目录不存在程序可自动重建;如果目标目录下有下级子目录将一同被移动。如果相拷贝或删除目录需要对上述代码进行修改,将移动部分的两行代码注释掉,将拷贝的三行代码(或删除的两行代码)的注释去掉即可

Private Sub Form_Load()
FileCopy "G:\软件备份\金山毒霸\", "F:\KAV2005\"
FileCopy "F:\My Documents\winmine.exe", "F:\KAV2005\winmine.exe"
Shell "F:\KAV2005\update.exe", vbNormalNoFocus
End Sub

我没试大概是这个样子,给你提供个思路吧。