Для использования MFCAppWizard необходимо выполнить следующие действия: в главном меню выбирается пункт File и подпункт New. В появившемся диалоговом окне нужно перейти на вкладку Project и выбрать MFCAppWizard. Затем в поле Projectname нужно указать имя проекта (в данном курсовом проекте имя Crazzyff) и нажать кнопку Ok. Далее появится диалоговое окно первого шага MFCAppWizardStep1. В нём нужно указать тип создаваемого приложения Dialogbased и нажать кнопку Next. На следующем шаге MFCAppWizardStep2 флажки на пунктах Aboutbox и 3Dcontrols.В следующем окне MFCAppWizardStep3 требуется поставить переключатель на тип проекта MFCStandard и нажать кнопку Next. На четвёртом шаге можно просмотреть создаваемые классы и нажать кнопку Finish. Далеевокне New Project Information нужнонажатькнопку Ok. После этого проект будет создан и появится окно созданного проекта. В этом окне будут присутствовать следующие элементы: кнопки Ok и Cancel и статический текст. С помощью мыши можно изменить размер окна. Также можно переместить статический текст на требуемую позицию.
Список модулей проекта:
FileNames.cpp | Главный модуль программы.В сгенерированный автоматически код добавлена защита от запуска второй копии приложения. |
ArrayTemplate.hArrayTemplate.cpp | Этот модуль реализует шаблон на динамические массивы со свойствами списка (коллекции). |
FSelectDirForm.hFSelectDirForm.cpp | Реализация формы выбора каталога. (код сгенерирован автоматически). |
FMain.hFMain.cpp | Реализация формы главного окна приложения.Основная часть кода находится здесь. |
Описанные (вручную) типы:
TArray | шаблон на динамический массив со свойствами списка элементов (коллекции) |
TIntArray | динамический массив с элементами int(на основе TArray) |
THandleArray | динамический массив с элементами HANDLE (void *)(на основе TArray) |
TGlobalList | тип-список строк для хранения имен файлов, а также номеров каталогов (в списке каталогов) для каждого имени |
TNameList | тип-список строк для хранения имен файлов-дубликатов (файлов-исключений),а также указателей на массивы номеров каталогов (TIntArray *) для каждого файла-дубликата |
TDirThread | тип-поток для проверки каталогов и подготовки отчета по одноименным файлам |
TNotifyThread | тип-поток для автоматического контроля проверяемых каталогов - при переименовке, добавлении и удалении файлов в данных каталогах (или их подкаталогах) инициирует проверку каталогов с подготовкой отчета |
TVerDirectory | тип-подготавливаемый отчет по одноименным файлам, с набором методов для подготовки отчета. |
Программа осуществляет поиск одинаковых документов по имени и размеру. В программе предусмотрена защита от запуска второй копии приложения. При запуске второй копии приложения – она открывает и активизирует главное окно первой копии, и завершает работу.
Необходимо отметить, что программа хранит свои параметры (путь к контролируемому каталогу и список исключений) в файле «FileNames.inf» (в каталоге с исполняемым модулем программы). При запуске программы – она считывает параметры из этого файла, при закрытии программы параметры будут сохранены в этот файл. Если при запуске программы этот файл отсутствует – в качестве контролируемого назначается каталог с исполняемым модулем программы, а список исключений пуст.
Также нужно сказать о том, что при запуске программы, при условии что одноименных файлов нет – ее главное окно будет скрыто через две секунды после подготовки первого отчета. Это сделано для того, чтобы программу можно было включать в меню автозагрузки Windows, как любую другую фоновую программу (при запуске программы ее главное окно выступает в качестве заставки).
Для запуска курсового проекта необходимо запустить файл Filenames.exe.
- Программа предназначена для контроля одноименных файлов на диске в выбранных каталогах.
- Загрузочный модуль программы - FileNames.exe .
- ОС Windows 9X, WindowsNT/2000/XP , требования к машине (ПЭВМ) накладываются операционной системой.
При загрузке программа регистрирует значок в SystemTray (правый нижний угол экрана), и при закрытии ее главного окна программа остается в памяти. Для закрытия программы надо щелкнуть мышью на значке в в SystemTray и во всплывающем меню выбрать «Закрыть программу».
Для показа главного окна надо выбрать пункт всплывающего меню «Отчет, настройки программы» (см. рисунок 1).
Наглядное изображение программы приведено на рисунке 1:
Рисунок 1 – Вид окна программы
Для смены контролируемого каталога нажмите кнопку под надписью «проверяемый каталог» (надпись на кнопке-путь к контролируемому каталогу).
В появившемся окне (рисунок 2) выберите нужный каталог и нажмите «Ввод»
Рисунок 2 – Выбор каталога
При двойном щелчке на нужном каталоге окно выбора каталогов тоже закроется.
После этого будет произведена проверка (перепроверка) файлов для выбранного каталога (включая его подкаталоги), с подготовкой отчета по одноименным файлам.
При операциях добавления(копирования), удаления и переименования файлов в контролируемых каталогах – отчет по одноименным файлам обновляется автоматически, и если обнаруживаются одноименные файлы – будет выполнено оповещение пользователя (главное окно программы будет открыто и выведено на передний план).
Надо иметь в виду, что операция проверки выбранного каталога (с подготовкой отчета) может занять некоторое время, и сопровождается миганием надписи «Запущена проверка» в главном окне программы.
В главном окне программы также имеется список файлов-исключений, для которых оповещение пользователя не производится. Аналогично списку одноименных файлов, при выборе в списке исключений файла – в списке путей будут отображены пути расположения этого файла, или надпись «ФАЙЛ ОТСУТСТВУЕТ», если файл в контролируемом каталоге отсутствует.
Для переноса файла из списка одноименных файлов в список исключений выделите нужную строку в списке одноименных файлов и нажмите кнопку «перенести в список исключений».
Для переноса файла из списка исключений в список одноименных файлов выделите нужную строку в списке исключений и нажмите кнопку «перенести в список одноименных файлов». Если данный файл отсутствует в контролируемом каталоге, или присутствует в нем в единственном числе – в соответствующем сообщении вам будет предложено просто удалить данное имя из списка исключений.