Restore.frm
上传用户:dohkov
上传日期:2007-06-18
资源大小:35k
文件大小:11k
源码类别:

家庭/个人应用

开发平台:

Visual Basic

  1. VERSION 5.00
  2. Object = "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCOMCTL.OCX"
  3. Begin VB.Form Restore 
  4.    Caption         =   "恢复--选定文件到右边的列表框中供恢复"
  5.    ClientHeight    =   4275
  6.    ClientLeft      =   60
  7.    ClientTop       =   345
  8.    ClientWidth     =   7365
  9.    ControlBox      =   0   'False
  10.    LinkTopic       =   "Form1"
  11.    ScaleHeight     =   4275
  12.    ScaleWidth      =   7365
  13.    StartUpPosition =   3  '窗口缺省
  14.    Begin VB.CommandButton RemoveAll 
  15.       Height          =   375
  16.       Left            =   4320
  17.       Picture         =   "Restore.frx":0000
  18.       Style           =   1  'Graphical
  19.       TabIndex        =   14
  20.       ToolTipText     =   "移走全部恢复文件"
  21.       Top             =   2640
  22.       Width           =   615
  23.    End
  24.    Begin VB.CommandButton Remove 
  25.       Height          =   375
  26.       Left            =   4320
  27.       Picture         =   "Restore.frx":0152
  28.       Style           =   1  'Graphical
  29.       TabIndex        =   13
  30.       ToolTipText     =   "移走选定的恢复文件"
  31.       Top             =   1440
  32.       Width           =   615
  33.    End
  34.    Begin MSComctlLib.ProgressBar ProgressBar1 
  35.       Height          =   375
  36.       Left            =   120
  37.       TabIndex        =   12
  38.       Top             =   3720
  39.       Visible         =   0   'False
  40.       Width           =   4455
  41.       _ExtentX        =   7858
  42.       _ExtentY        =   661
  43.       _Version        =   393216
  44.       Appearance      =   1
  45.    End
  46.    Begin VB.CommandButton LeftAll 
  47.       Height          =   375
  48.       Left            =   4320
  49.       Picture         =   "Restore.frx":0594
  50.       Style           =   1  'Graphical
  51.       TabIndex        =   9
  52.       ToolTipText     =   "全部文件供恢复"
  53.       Top             =   2040
  54.       Width           =   615
  55.    End
  56.    Begin VB.CommandButton LeftMove 
  57.       Height          =   375
  58.       Left            =   4320
  59.       Picture         =   "Restore.frx":06E6
  60.       Style           =   1  'Graphical
  61.       TabIndex        =   8
  62.       ToolTipText     =   "选定文件供还原"
  63.       Top             =   840
  64.       Width           =   615
  65.    End
  66.    Begin VB.DriveListBox Drive1 
  67.       Height          =   300
  68.       Left            =   120
  69.       TabIndex        =   6
  70.       Top             =   3000
  71.       Width           =   2055
  72.    End
  73.    Begin VB.CommandButton Command2 
  74.       Cancel          =   -1  'True
  75.       Caption         =   "取消"
  76.       Height          =   375
  77.       Left            =   6120
  78.       TabIndex        =   5
  79.       Top             =   3720
  80.       Width           =   1095
  81.    End
  82.    Begin VB.CommandButton Command1 
  83.       Caption         =   "开始恢复"
  84.       Default         =   -1  'True
  85.       Height          =   375
  86.       Left            =   4680
  87.       TabIndex        =   4
  88.       Top             =   3720
  89.       Width           =   1215
  90.    End
  91.    Begin VB.ListBox List1 
  92.       Height          =   2760
  93.       Left            =   5040
  94.       MultiSelect     =   2  'Extended
  95.       TabIndex        =   3
  96.       Top             =   480
  97.       Width           =   2175
  98.    End
  99.    Begin VB.FileListBox File1 
  100.       Height          =   2430
  101.       Left            =   2280
  102.       MultiSelect     =   2  'Extended
  103.       TabIndex        =   2
  104.       Top             =   480
  105.       Width           =   1935
  106.    End
  107.    Begin VB.ComboBox Combo1 
  108.       Height          =   300
  109.       Left            =   2280
  110.       Style           =   2  'Dropdown List
  111.       TabIndex        =   1
  112.       Top             =   3000
  113.       Width           =   1935
  114.    End
  115.    Begin VB.DirListBox Dir1 
  116.       Height          =   2400
  117.       Left            =   120
  118.       TabIndex        =   0
  119.       Top             =   480
  120.       Width           =   2055
  121.    End
  122.    Begin VB.Label Label3 
  123.       Caption         =   "要恢复的文件"
  124.       Height          =   255
  125.       Left            =   5040
  126.       TabIndex        =   11
  127.       Top             =   240
  128.       Width           =   1215
  129.    End
  130.    Begin VB.Label Label1 
  131.       AutoSize        =   -1  'True
  132.       Caption         =   "当前文件"
  133.       Height          =   180
  134.       Left            =   2280
  135.       TabIndex        =   10
  136.       Top             =   240
  137.       Width           =   720
  138.    End
  139.    Begin VB.Label Label2 
  140.       AutoSize        =   -1  'True
  141.       Caption         =   "当前目录"
  142.       Height          =   180
  143.       Left            =   120
  144.       TabIndex        =   7
  145.       Top             =   240
  146.       Width           =   840
  147.    End
  148.    Begin VB.Line Line2 
  149.       BorderColor     =   &H00FFFFFF&
  150.       X1              =   160
  151.       X2              =   7200
  152.       Y1              =   3495
  153.       Y2              =   3495
  154.    End
  155.    Begin VB.Line Line1 
  156.       BorderColor     =   &H00000000&
  157.       X1              =   160
  158.       X2              =   7200
  159.       Y1              =   3480
  160.       Y2              =   3480
  161.    End
  162. End
  163. Attribute VB_Name = "Restore"
  164. Attribute VB_GlobalNameSpace = False
  165. Attribute VB_Creatable = False
  166. Attribute VB_PredeclaredId = True
  167. Attribute VB_Exposed = False
  168. Private Sub Combo1_Click()
  169. Select Case Combo1.ListIndex
  170.        Case 0
  171.             File1.Pattern = "*.cdo;*.fnd;*.cds"
  172.        Case 1
  173.             File1.Pattern = "*.cdo"
  174.        Case 2
  175.             File1.Pattern = "*.fnd"
  176.        Case 3
  177.             File1.Pattern = "cdrom.cds"
  178.        Case 4
  179.             File1.Pattern = "*.*"
  180. End Select
  181. End Sub
  182. Private Sub Command1_Click()
  183. On Error GoTo Errorhandle
  184. If List1.ListCount < 1 Then
  185.    MsgBox "没有文件供恢复!" + Chr(13) + Chr(13) + "如果你不想恢复,请单击取消退出!", vbExclamation
  186.    Exit Sub
  187. End If
  188. If vbYes = MsgBox("确实要恢复文件,这可能会造成当前光盘镜像文件的丢失!" + Chr(13) + Chr(13) + "要继续吗?", vbQuestion + vbYesNo) Then
  189.    Me.MousePointer = 11
  190.    Me.ProgressBar1.Max = List1.ListCount - 1 + 1
  191.    Me.ProgressBar1.Visible = True
  192.    For i = 0 To UBound(RestoreFile)
  193.       If LCase(List1.List(i)) = "cdrom.cds" Then
  194.          Dim AppCds() As String
  195.          Dim ResCds() As String
  196.          fnum = FreeFile
  197.          j = 0
  198.          Open RestoreFile(i) For Input As #fnum
  199.          Do While Not EOF(fnum)
  200.             Line Input #fnum, mykey
  201.             ReDim Preserve ResCds(j) As String
  202.             ResCds(j) = mykey
  203.             j = j + 1
  204.          Loop
  205.          Close fnum
  206.          j = 0
  207.          Open App.Path + "cdrom.cds" For Input As #fnum
  208.          Do While Not EOF(fnum)
  209.             Line Input #fnum, mykey
  210.             ReDim Preserve AppCds(j) As String
  211.             AppCds(j) = mykey
  212.             j = j + 1
  213.          Loop
  214.          Close fnum
  215.          For j = 0 To UBound(ResCds)
  216.              For k = 0 To UBound(AppCds)
  217.                  If AppCds(k) = ResCds(j) Then
  218.                     Exit For
  219.                  End If
  220.              Next
  221.              If k > UBound(AppCds) Then
  222.                 fnum = FreeFile
  223.                 Open App.Path + "cdrom.cds" For Append As #fnum
  224.                      Print #fnum, ResCds(j)
  225.                 Close fnum
  226.              End If
  227.          Next
  228.       Else
  229.          FileCopy RestoreFile(i), List1.List(i)
  230.       End If
  231.       Me.ProgressBar1.Value = i
  232.    Next
  233.    Me.MousePointer = 0
  234.    Me.ProgressBar1.Visible = False
  235.    MsgBox "恢复完成!" + Chr(13) + Chr(13) + "必须重新启动光盘管家以使恢复生效!", vbInformation
  236.    End
  237. End If
  238. Exit Sub
  239. Errorhandle:
  240. If Err.Number = 75 Then
  241.    Me.ProgressBar1.Visible = False
  242.    Me.MousePointer = 0
  243.    MsgBox "不能存储文件,请检查你有否在此磁盘上有存储文件的权力!", vbCritical
  244. End If
  245. If Err.Number = 70 Then
  246.    Me.ProgressBar1.Visible = False
  247.    Me.MousePointer = 0
  248.    MsgBox "磁盘被写保护,或者是无权写入!", vbCritical
  249. End If
  250. If Err.Number = 61 Then
  251.    MsgBox "磁盘已满,请更换新盘!", vbInformation
  252.    Me.ProgressBar1.Visible = False
  253.    Me.MousePointer = 0
  254. End If
  255. End Sub
  256. Private Sub Command2_Click()
  257. Unload Me
  258. End Sub
  259. Private Sub Dir1_Change()
  260. File1.Path = Dir1.Path
  261. End Sub
  262. Private Sub Drive1_Change()
  263. On Error GoTo ErrorControl
  264. Dir1.Path = Drive1.Drive
  265. Exit Sub
  266. ErrorControl:
  267. Select Case Err.Number
  268.        Case 52
  269.             MsgBox "指定的磁盘驱动器不可用!" + Chr(13) + Chr(13) + "可能不存在此驱动器或驱动器内无磁盘!", vbCritical
  270.        Case 57
  271.             MsgBox "磁盘I/0错误,操作被终止!", vbCritical
  272.        Case 61
  273.             MsgBox "磁盘满,空间不够!", vbCritical
  274.        Case 68
  275.             MsgBox "磁盘没有放入驱动器中,请检查一下吧!", vbCritical
  276.        Case 70
  277.             MsgBox "磁盘被写保护 或 文件被保护!", vbCritical
  278.        Case 71
  279.             MsgBox "磁盘没准备好!", vbCritical
  280. End Select
  281. End Sub
  282. Private Sub Form_Load()
  283. CencerForm Me
  284. Combo1.AddItem "所有可恢复文件"
  285. Combo1.AddItem "光盘镜像文件[*.CDO]"
  286. Combo1.AddItem "搜索结果文件[*.FND]"
  287. Combo1.AddItem "光盘镜像注册表"
  288. Combo1.AddItem "所有文件[*.*]"
  289. Combo1.ListIndex = 0
  290. ChDir ("..")
  291. Dir1.Path = CurDir
  292. ChDir App.Path
  293. End Sub
  294. Private Sub LeftAll_Click()
  295. Dim You As Boolean
  296. You = False
  297. For i = File1.ListCount - 1 To 0 Step -1
  298.        For j = 0 To List1.ListCount - 1
  299.            sdirectory = Dir1.Path
  300.            If Right(Dir1.Path, 1) <> "" Then
  301.               sdirectory = Dir1.Path + ""
  302.            End If
  303.            If sdirectory + File1.List(i) = RestoreFile(j) Then
  304.                You = True
  305.                Exit For
  306.            End If
  307.        Next
  308.          If Not You Then
  309.            List1.AddItem File1.List(i)
  310.            ReDim Preserve RestoreFile(List1.ListCount - 1) As String
  311.            sdirectory = Dir1.Path
  312.            If Right(Dir1.Path, 1) <> "" Then
  313.               sdirectory = Dir1.Path + ""
  314.            End If
  315.            RestoreFile(List1.ListCount - 1) = sdirectory + File1.List(i)
  316.            You = False
  317.          End If
  318. Next
  319. End Sub
  320. Private Sub LeftMove_Click()
  321. Dim You As Boolean
  322. You = False
  323. For i = File1.ListCount - 1 To 0 Step -1
  324.     If File1.Selected(i) Then
  325.        For j = 0 To List1.ListCount - 1
  326.            sdirectory = Dir1.Path
  327.            If Right(Dir1.Path, 1) <> "" Then
  328.               sdirectory = Dir1.Path + ""
  329.            End If
  330.            If sdirectory + File1.List(i) = RestoreFile(j) Then
  331.                You = True
  332.                Exit For
  333.            End If
  334.        Next
  335.          If Not You Then
  336.            List1.AddItem File1.List(i)
  337.            ReDim Preserve RestoreFile(List1.ListCount - 1) As String
  338.            sdirectory = Dir1.Path
  339.            If Right(Dir1.Path, 1) <> "" Then
  340.               sdirectory = Dir1.Path + ""
  341.            End If
  342.            RestoreFile(List1.ListCount - 1) = sdirectory + File1.List(i)
  343.            You = False
  344.          End If
  345.     End If
  346. Next
  347. End Sub
  348. Private Sub Remove_Click()
  349. For i = List1.ListCount - 1 To 0 Step -1
  350.     If List1.Selected(i) Then
  351.        For j = i To List1.ListCount - 2
  352.            RestoreFile(j) = RestoreFile(j + 1)
  353.        Next
  354.        List1.RemoveItem i
  355.        If List1.ListCount = 0 Then
  356.           ReDim RestoreFile(0) As String
  357.        Else
  358.           ReDim Preserve RestoreFile(List1.ListCount - 1)
  359.        End If
  360.     End If
  361. Next
  362. End Sub
  363. Private Sub RemoveAll_Click()
  364. List1.Clear
  365. ReDim RestoreFile(0) As String
  366. End Sub