www.pudn.com > 进行数据库备份与恢复有VB6.0开发完整源码.zip > DataBackup.ctl
VERSION 5.00
Object = "{F9043C88-F6F2-101A-A3C9-08002B2F49FB}#1.2#0"; "COMDLG32.OCX"
Begin VB.UserControl DataBackup
ClientHeight = 3315
ClientLeft = 0
ClientTop = 0
ClientWidth = 6015
LockControls = -1 'True
ScaleHeight = 3315
ScaleWidth = 6015
ToolboxBitmap = "DataBackup.ctx":0000
Begin MSComDlg.CommonDialog dlgBrowser
Left = 105
Top = 225
_ExtentX = 847
_ExtentY = 847
_Version = 393216
End
Begin VB.Frame Frame1
ForeColor = &H00FF0000&
Height = 3360
Left = 0
TabIndex = 8
Top = -60
Width = 5985
Begin VB.CommandButton cmdRestore
Caption = "开始恢复"
Height = 960
Left = 4770
Picture = "DataBackup.ctx":0312
Style = 1 'Graphical
TabIndex = 14
Top = 2145
Width = 990
End
Begin VB.CommandButton cmdBackup
Caption = "开始备份"
Height = 960
Left = 4755
Picture = "DataBackup.ctx":0BDC
Style = 1 'Graphical
TabIndex = 13
Top = 645
Width = 990
End
Begin VB.CommandButton cmdSelect4
Caption = ".."
Height = 240
Left = 4380
TabIndex = 7
Top = 2835
Width = 315
End
Begin VB.CommandButton cmdSelect2
Caption = ".."
Height = 240
Left = 4380
TabIndex = 5
Top = 1335
Width = 315
End
Begin VB.TextBox txtBackupFileTo
Height = 285
Left = 285
TabIndex = 1
Top = 1305
Width = 4425
End
Begin VB.CommandButton cmdSelect3
Caption = ".."
Height = 240
Left = 4380
TabIndex = 6
Top = 2205
Width = 315
End
Begin VB.TextBox txtRestoreFileFrom
Height = 285
Left = 285
TabIndex = 2
Top = 2175
Width = 4425
End
Begin VB.CommandButton cmdSelect1
Caption = ".."
Height = 240
Left = 4380
TabIndex = 4
Top = 675
Width = 315
End
Begin VB.TextBox txtBackupFileFrom
Height = 285
Left = 285
TabIndex = 0
Top = 645
Width = 4425
End
Begin VB.TextBox txtRestoreFileTo
Height = 285
Left = 285
TabIndex = 3
Top = 2805
Width = 4425
End
Begin VB.Label Label2
AutoSize = -1 'True
Caption = "请选择需要《恢复》到的目录:"
ForeColor = &H000040C0&
Height = 180
Index = 1
Left = 285
TabIndex = 12
Top = 2580
Width = 2520
End
Begin VB.Label Label1
AutoSize = -1 'True
Caption = "请选择需要《备份》到的目录:"
ForeColor = &H000040C0&
Height = 180
Index = 1
Left = 270
TabIndex = 11
Top = 1065
Width = 2520
End
Begin VB.Line Line1
BorderColor = &H00FFFFFF&
Index = 1
X1 = 255
X2 = 5745
Y1 = 1740
Y2 = 1740
End
Begin VB.Line Line1
Index = 0
X1 = 270
X2 = 5730
Y1 = 1725
Y2 = 1725
End
Begin VB.Label Label2
AutoSize = -1 'True
Caption = "请选择需要《恢复》的文件:"
ForeColor = &H00008000&
Height = 180
Index = 0
Left = 285
TabIndex = 10
Top = 1920
Width = 2340
End
Begin VB.Label Label1
AutoSize = -1 'True
Caption = "请选择需要《备份》的文件:"
ForeColor = &H00800000&
Height = 180
Index = 0
Left = 255
TabIndex = 9
Top = 405
Width = 2340
End
End
End
Attribute VB_Name = "DataBackup"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = True
Private Sub cmdBackup_Click()
'检测备份路径与其它是否为空
If Trim(txtBackupFileFrom.Text) = "" Then
MsgBox "对不起,请输入要备份的文件后,才能备份! ", vbInformation
txtBackupFileFrom.SetFocus
Exit Sub
End If
If Dir(Trim(txtBackupFileFrom.Text), vbNormal) = "" Then
MsgBox "Sorry,输入备份的文件不存在或不能访问? ", vbInformation
txtBackupFileFrom.SetFocus
Exit Sub
End If
If Trim(txtBackupFileTo.Text) = "" Then
MsgBox "对不起,请输入备份路径,才能备份! ", vbInformation
txtBackupFileTo.SetFocus
Exit Sub
End If
If Dir(Trim(txtBackupFileTo.Text), vbDirectory) = "" Then
MsgBox "Sorry,输入备份的路径不存在或不能访问? ", vbInformation
txtBackupFileTo.SetFocus
Exit Sub
End If
StartIt "Backup"
End Sub
Private Sub cmdRestore_Click()
'检测备份路径与其它是否为空
If Trim(txtRestoreFileFrom.Text) = "" Then
MsgBox "对不起,请输入要恢复的文件后,才能备份! ", vbInformation
txtRestoreFileFrom.SetFocus
Exit Sub
End If
If Dir(Trim(txtRestoreFileFrom.Text), vbNormal) = "" Then
MsgBox "Sorry,输入恢复的文件不存在或不能访问? ", vbInformation
txtRestoreFileFrom.SetFocus
Exit Sub
End If
If Trim(txtRestoreFileTo.Text) = "" Then
MsgBox "对不起,请输入要恢复路径,才能恢复! ", vbInformation
txtRestoreFileTo.SetFocus
Exit Sub
End If
If Dir(Trim(txtRestoreFileTo.Text), vbDirectory) = "" Then
MsgBox "Sorry,输入恢复的路径不存在或不能访问? ", vbInformation
txtRestoreFileTo.SetFocus
Exit Sub
End If
StartIt "Restore"
End Sub
Private Sub cmdSelect1_Click()
On Error Resume Next
dlgBrowser.DialogTitle = "请选择需要备份的文件"
dlgBrowser.CancelError = True
dlgBrowser.Filter = "所有文件(*.*)|*.*|Access文件(*.MDB)|*.MDB|VB中国备份文件(*.YVB)|*.YVB"
dlgBrowser.Flags = cdlOFNFileMustExist + cdlOFNHideReadOnly + cdlOFNPathMustExist
dlgBrowser.ShowOpen
txtBackupFileFrom = dlgBrowser.FileName
txtBackupFileFrom.SetFocus
If Err.Number = 32755 Then '取消时
Exit Sub
End If
End Sub
Private Sub cmdSelect2_Click()
Dim BI As BROWSEINFO
Dim nFolder As Long
Dim IDL As ITEMIDLIST
Dim pIdl As Long
Dim sPath As String
Dim SHFI As SHFILEINFO
With BI
.hOwner = UserControl.hwnd
nFolder = GetFolderValue(m_wCurOptIdx)
If SHGetSpecialFolderLocation(ByVal UserControl.hwnd, ByVal nFolder, IDL) = NOERROR Then
.pidlRoot = IDL.mkid.cb
End If
.pszDisplayName = String$(MAX_PATH, 0)
.lpszTitle = "请选择备份的路径 => 程序:俞思龙"
.ulFlags = GetReturnType()
End With
' 显示浏览对话框
pIdl = SHBrowseForFolder(BI)
If pIdl = 0 Then Exit Sub
sPath = String$(MAX_PATH, 0)
SHGetPathFromIDList ByVal pIdl, ByVal sPath
txtBackupFileTo.Text = Left(sPath, InStr(sPath, vbNullChar) - 1)
txtBackupFileTo.SetFocus
End Sub
Private Sub cmdSelect3_Click()
On Error Resume Next
dlgBrowser.DialogTitle = "请选择需要恢复的文件"
dlgBrowser.CancelError = True
dlgBrowser.Filter = "所有文件(*.*)|*.*|Access文件(*.MDB)|*.MDB|VB中国恢复文件(*.YVB)|*.YVB"
dlgBrowser.Flags = cdlOFNFileMustExist + cdlOFNHideReadOnly + cdlOFNPathMustExist
dlgBrowser.ShowOpen
txtRestoreFileFrom = dlgBrowser.FileName
txtRestoreFileFrom.SetFocus
If Err.Number = 32755 Then '取消时
Exit Sub
End If
End Sub
Private Sub cmdSelect4_Click()
Dim BI As BROWSEINFO
Dim nFolder As Long
Dim IDL As ITEMIDLIST
Dim pIdl As Long
Dim sPath As String
Dim SHFI As SHFILEINFO
With BI
.hOwner = UserControl.hwnd
nFolder = GetFolderValue(m_wCurOptIdx)
If SHGetSpecialFolderLocation(ByVal UserControl.hwnd, ByVal nFolder, IDL) = NOERROR Then
.pidlRoot = IDL.mkid.cb
End If
.pszDisplayName = String$(MAX_PATH, 0)
.lpszTitle = "请选择恢复的路径 => 程序:俞思龙"
.ulFlags = GetReturnType()
End With
' 显示浏览对话框
pIdl = SHBrowseForFolder(BI)
If pIdl = 0 Then Exit Sub
sPath = String$(MAX_PATH, 0)
SHGetPathFromIDList ByVal pIdl, ByVal sPath
txtRestoreFileTo.Text = Left(sPath, InStr(sPath, vbNullChar) - 1)
txtRestoreFileTo.SetFocus
End Sub
Private Sub txtBackupFileFrom_Click()
BackUpFileFrom = txtBackupFileFrom
End Sub
Private Sub txtBackupFileFrom_GotFocus()
txtBackupFileFrom.SelStart = 0
txtBackupFileFrom.SelLength = Len(txtBackupFileFrom)
End Sub
Private Sub txtBackupFileTo_Change()
BackUpFileTo = txtBackupFileTo
End Sub
Private Sub txtBackupFileTo_GotFocus()
txtBackupFileTo.SelStart = 0
txtBackupFileTo.SelLength = Len(txtBackupFileTo)
End Sub
Private Sub txtRestoreFileFrom_Change()
RestoreFileFrom = txtRestoreFileFrom
End Sub
Private Sub txtRestoreFileFrom_GotFocus()
txtRestoreFileFrom.SelStart = 0
txtRestoreFileFrom.SelLength = Len(txtRestoreFileFrom)
End Sub
Private Sub txtRestoreFileTo_Change()
RestoreFileTo = txtRestoreFileTo
End Sub
Private Sub txtRestoreFileTo_GotFocus()
txtRestoreFileFrom.SelStart = 0
txtRestoreFileFrom.SelLength = Len(txtRestoreFileFrom)
End Sub
'注意!不要删除或修改下列被注释的行!
'MappingInfo=txtBackupFileFrom,txtBackupFileFrom,-1,Text
Public Property Get BackUpFileFrom() As String
Attribute BackUpFileFrom.VB_Description = "返回/设置控件中包含的文本。"
BackUpFileFrom = txtBackupFileFrom.Text
End Property
Public Property Let BackUpFileFrom(ByVal New_BackUpFileFrom As String)
txtBackupFileFrom.Text() = New_BackUpFileFrom
PropertyChanged "BackUpFileFrom"
End Property
'注意!不要删除或修改下列被注释的行!
'MappingInfo=txtBackupFileTo,txtBackupFileTo,-1,Text
Public Property Get BackUpFileTo() As String
Attribute BackUpFileTo.VB_Description = "返回/设置控件中包含的文本。"
BackUpFileTo = txtBackupFileTo.Text
End Property
Public Property Let BackUpFileTo(ByVal New_BackUpFileTo As String)
txtBackupFileTo.Text() = New_BackUpFileTo
PropertyChanged "BackUpFileTo"
End Property
'注意!不要删除或修改下列被注释的行!
'MappingInfo=txtRestoreFileFrom,txtRestoreFileFrom,-1,Text
Public Property Get RestoreFileFrom() As String
Attribute RestoreFileFrom.VB_Description = "返回/设置控件中包含的文本。"
RestoreFileFrom = txtRestoreFileFrom.Text
End Property
Public Property Let RestoreFileFrom(ByVal New_RestoreFileFrom As String)
txtRestoreFileFrom.Text() = New_RestoreFileFrom
PropertyChanged "RestoreFileFrom"
End Property
'注意!不要删除或修改下列被注释的行!
'MappingInfo=txtRestoreFileTo,txtRestoreFileTo,-1,Text
Public Property Get RestoreFileTo() As String
Attribute RestoreFileTo.VB_Description = "返回/设置控件中包含的文本。"
RestoreFileTo = txtRestoreFileTo.Text
End Property
Public Property Let RestoreFileTo(ByVal New_RestoreFileTo As String)
txtRestoreFileTo.Text() = New_RestoreFileTo
PropertyChanged "RestoreFileTo"
End Property
'从存贮器中加载属性值
Private Sub UserControl_ReadProperties(PropBag As PropertyBag)
txtBackupFileFrom.Text = PropBag.ReadProperty("BackUpFileFrom", "")
txtBackupFileTo.Text = PropBag.ReadProperty("BackUpFileTo", "")
txtRestoreFileFrom.Text = PropBag.ReadProperty("RestoreFileFrom", "")
txtRestoreFileTo.Text = PropBag.ReadProperty("RestoreFileTo", "")
End Sub
Private Sub UserControl_Resize()
Size Frame1.Width, Frame1.Height
End Sub
'将属性值写到存储器
Private Sub UserControl_WriteProperties(PropBag As PropertyBag)
Call PropBag.WriteProperty("BackUpFileFrom", txtBackupFileFrom.Text, "")
Call PropBag.WriteProperty("BackUpFileTo", txtBackupFileTo.Text, "")
Call PropBag.WriteProperty("RestoreFileFrom", txtRestoreFileFrom.Text, "")
Call PropBag.WriteProperty("RestoreFileTo", txtRestoreFileTo.Text, "")
End Sub
Private Function GetFolderValue(wIdx As Integer) As Long
If wIdx < 2 Then
GetFolderValue = 0
ElseIf wIdx < 12 Then
GetFolderValue = wIdx
Else
GetFolderValue = wIdx + 4
End If
End Function
Private Function GetReturnType() As Long
Dim dwRtn As Long
dwRtn = dwRtn
GetReturnType = dwRtn
End Function
Private Sub StartIt(sType)
On Error GoTo POP_ERR
Dim SHop As SHFILEOPSTRUCT
If sType = "Backup" Then '备份时
With SHop
.fFlags = FOF_SIMPLEPROGRESS
.pFrom = BackUpFileFrom
.pTo = BackUpFileTo
.wFunc = FO_COPY '复制
End With
Else '恢复
With SHop
.fFlags = FOF_SIMPLEPROGRESS
.pFrom = RestoreFileFrom
.pTo = RestoreFileTo
.wFunc = FO_COPY '复制
End With
End If
SHFileOperation SHop
MsgBox "备份与恢复处理完毕! ", vbInformation
Exit Sub
POP_ERR:
MsgBox "没有正常处理备份与恢复! ", vbExclamation
Exit Sub
End Sub