VERSION 5.00
Begin VB.Form Code 
   Caption         =   "Code"
   ClientHeight    =   4200
   ClientLeft      =   2028
   ClientTop       =   1680
   ClientWidth     =   6360
   LinkTopic       =   "Form1"
   ScaleHeight     =   4200
   ScaleWidth      =   6360
   Begin VB.Timer Timer1 
      Interval        =   500
      Left            =   120
      Top             =   3720
   End
   Begin VB.TextBox fldПароль 
      Height          =   285
      IMEMode         =   3  'DISABLE
      Left            =   2160
      PasswordChar    =   "*"
      TabIndex        =   14
      Top             =   2400
      Width           =   3972
   End
   Begin VB.TextBox fldОбрабатываемыйФайл 
      Height          =   285
      Left            =   3360
      Locked          =   -1  'True
      TabIndex        =   11
      Top             =   3240
      Width           =   2775
   End
   Begin VB.TextBox fldЗатраченоВремени 
      Height          =   285
      Left            =   2040
      Locked          =   -1  'True
      TabIndex        =   9
      Top             =   3240
      Width           =   1092
   End
   Begin VB.TextBox fldОбработано 
      Height          =   285
      Left            =   2040
      Locked          =   -1  'True
      TabIndex        =   7
      Top             =   2880
      Width           =   1092
   End
   Begin VB.CheckBox ChВесьКаталог 
      Caption         =   "Выбранную папку целиком"
      Height          =   255
      Left            =   3240
      TabIndex        =   6
      Top             =   480
      Width           =   3012
   End
   Begin VB.CommandButton cmdВыход 
      Caption         =   "Выход"
      Height          =   375
      Left            =   3840
      TabIndex        =   5
      Top             =   3720
      Width           =   1695
   End
   Begin VB.CommandButton cmdНачатьОбработку 
      Caption         =   "Начать обработку"
      Height          =   375
      Left            =   1080
      TabIndex        =   4
      Top             =   3720
      Width           =   1695
   End
   Begin VB.DriveListBox СписокУстройств 
      Height          =   288
      Left            =   120
      TabIndex        =   2
      Top             =   480
      Width           =   3015
   End
   Begin VB.DirListBox СписокКаталогов 
      Height          =   1368
      Left            =   120
      TabIndex        =   1
      Top             =   840
      Width           =   3015
   End
   Begin VB.FileListBox СписокФайлов 
      Height          =   1416
      Left            =   3240
      MultiSelect     =   2  'Extended
      TabIndex        =   0
      Top             =   840
      Width           =   3015
   End
   Begin VB.Line Line3 
      X1              =   3240
      X2              =   3240
      Y1              =   2760
      Y2              =   3600
   End
   Begin VB.Line Line2 
      X1              =   120
      X2              =   6120
      Y1              =   3600
      Y2              =   3600
   End
   Begin VB.Line Line1 
      X1              =   120
      X2              =   6120
      Y1              =   2760
      Y2              =   2760
   End
   Begin VB.Label Label5 
      Caption         =   "Пароль для обработки:"
      Height          =   252
      Left            =   120
      TabIndex        =   13
      Top             =   2400
      Width           =   2052
   End
   Begin VB.Label Label4 
      Caption         =   "Обрабатываемый файл:"
      Height          =   252
      Left            =   3720
      TabIndex        =   12
      Top             =   2880
      Width           =   2292
   End
   Begin VB.Label Label3 
      Caption         =   "Затрачено времени:"
      Height          =   252
      Left            =   120
      TabIndex        =   10
      Top             =   3240
      Width           =   1932
   End
   Begin VB.Label Label2 
      Caption         =   "Обработано файлов:"
      Height          =   252
      Left            =   120
      TabIndex        =   8
      Top             =   2880
      Width           =   1812
   End
   Begin VB.Label Label1 
      Caption         =   "Выберите файлы для обработки"
      Height          =   252
      Left            =   1200
      TabIndex        =   3
      Top             =   120
      Width           =   3012
   End
End
Attribute VB_Name = "Code"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = True
Attribute VB_Exposed = False
Option Explicit

Private Sub ChВесьКаталог_Click()
    Dim i As Integer
    
    If (ChВесьКаталог) Then
    ' Пометить все файлы текущего каталога как выбранные
        For i = 0 To СписокФайлов.ListCount - 1
            СписокФайлов.Selected(i) = True
        Next i
    End If
End Sub

Private Sub cmdВыход_Click()
    End
End Sub

Private Sub cmdНачатьОбработку_Click()
    Dim i As Integer, РазмерФайла As Long, ИмяФайла As String
    Dim РезультатОбработки As Integer
    
    Обработано = 0
    
    If (Len(fldПароль.Text) = 0) Then
        Call MsgBox("Надо обязательно задать пароль.", , "Неполные данные")
        Exit Sub
    End If
    
    ' Запретить изменение списка выбранных файлов во время обработки
    СписокУстройств.Enabled = False
    СписокКаталогов.Enabled = False
    СписокФайлов.Enabled = False
    
    ВремяНачала = Timer()
    For i = 0 To СписокФайлов.ListCount - 1
        If (СписокФайлов.Selected(i)) Then
            fldОбрабатываемыйФайл.Text = СписокФайлов.List(i)
            DoEvents
            
            If (Right(СписокКаталогов.Path, 1) = "\") Then
                ИмяФайла = СписокКаталогов.Path & СписокФайлов.List(i)
            Else
                ИмяФайла = СписокКаталогов.Path & "\" & СписокФайлов.List(i)
            End If
            
            РезультатОбработки = Кодировать(ИмяФайла, fldПароль.Text)
            РазмерФайла = FileLen(ИмяФайла)
            
            If (РезультатОбработки = 0) Then
                Обработано = Обработано + РазмерФайла
                СписокФайлов.Selected(i) = False
            Else
                MsgBox ("Ошибка обработки файла - проверьте, что файл не защищен от записи")
            End If
        End If
    Next i
    
    Call ОпределитьЗатраченноеВремя
    fldОбрабатываемыйФайл.Text = ""
    ВремяНачала = 0
    
    ' Разрешить формирование нового задания
    СписокУстройств.Enabled = True
    СписокКаталогов.Enabled = True
    СписокФайлов.Enabled = True
    ChВесьКаталог.Value = False
End Sub

Private Sub ОпределитьЗатраченноеВремя()
    Dim s As Long, str As String
    
    If (Timer() < ВремяНачала) Then
        ' Перешли через полночь
        s = 86400# - ВремяНачала + Timer()
    Else
        s = Timer() - ВремяНачала
    End If
    
    str = ""
    If (s > 3600) Then
        ' Затрачено больше часа
        str = CStr(CInt(s / 3600)) & " ч. "
        s = s Mod 3600
    End If
    
    If (s > 60) Then
        ' Затрачено больше минуты
        str = str & CStr(CInt(s / 60)) & " мин. "
        s = s Mod 60
    End If
    
    str = str & CStr(s) & " сек. "
    
    fldЗатраченоВремени.Text = str
End Sub

Private Sub Timer1_Timer()
    If (Обработано > 0) Then fldОбработано.Text = Обработано
    If (ВремяНачала = 0) Then Exit Sub
    Call ОпределитьЗатраченноеВремя
End Sub

Private Sub СписокКаталогов_Change()
    СписокФайлов.filename = СписокКаталогов.Path
End Sub

Private Sub СписокУстройств_Change()
    On Error GoTo Ошибка
    СписокКаталогов.Path = СписокУстройств.Drive
    GoTo выход
    
Ошибка:
    Call MsgBox("Выбранное устройство недоступно", , "Предупреждение")
    Resume выход

выход:
    On Error GoTo 0
End Sub

Private Sub СписокФайлов_PathChange()
    ChВесьКаталог.Value = False
End Sub
