Курсовая работа: Системное программирование для операционных систем
Обработчик таймера - осуществляет мигание надписи "Запущена проверка..."
void __fastcall TFForm::AddDirButtonClick(TObject *Sender)
Обработчик кнопки AddDirButton - открывает окно SDForm для смены контролируемого каталога, и перезапускает потоки
void __fastcall TFForm::SetExButtonClick(TObject *Sender)
Обработчик кнопки SetExButton (стрелка вниз) - передает файл из списка одноименных в список исключений
void __fastcall TFForm::ResetExButtonClick(TObject *Sender)
Обработчик кнопки ResetExButton (стрелка верх) - передает файл из списка исключений в список одноименных файлов или удаляет файл из списка исключений
2. Программная реализация алгоритма
При создании программы необходимо запустить среду программирования MicrosoftVisualC++ 6.0.
Для использования 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.h ArrayTemplate.cpp | Этот модуль реализует шаблон на динамические массивы со свойствами списка (коллекции). |
FSelectDirForm.h FSelectDirForm.cpp | Реализация формы выбора каталога. (код сгенерирован автоматически). |
FMain.h FMain.cpp |
Реализация формы главного окна приложения. Основная часть кода находится здесь. |
Описанные (вручную) типы:
TArray | шаблон на динамический массив со свойствами списка элементов (коллекции) |
TIntArray |
динамический массив с элементами int (на основе TArray) |
THandleArray |
динамический массив с элементами HANDLE (void *) (на основе TArray) |
TGlobalList | тип-список строк для хранения имен файлов, а также номеров каталогов (в списке каталогов) для каждого имени |
TNameList | тип-список строк для хранения имен файлов-дубликатов (файлов-исключений),а также указателей на массивы номеров каталогов (TIntArray *) для каждого файла-дубликата |
TDirThread | тип-поток для проверки каталогов и подготовки отчета по одноименным файлам |
TNotifyThread | тип-поток для автоматического контроля проверяемых каталогов - при переименовке, добавлении и удалении файлов в данных каталогах (или их подкаталогах) инициирует проверку каталогов с подготовкой отчета |
TVerDirectory | тип-подготавливаемый отчет по одноименным файлам, с набором методов для подготовки отчета. |
3. Исходный текст программы приведен в приложении Б
4. Функциональные возможности программы
Программа осуществляет поиск одинаковых документов по имени и размеру. В программе предусмотрена защита от запуска второй копии приложения. При запуске второй копии приложения – она открывает и активизирует главное окно первой копии, и завершает работу.
Необходимо отметить, что программа хранит свои параметры (путь к контролируемому каталогу и список исключений) в файле «FileNames.inf» (в каталоге с исполняемым модулем программы). При запуске программы – она считывает параметры из этого файла, при закрытии программы параметры будут сохранены в этот файл. Если при запуске программы этот файл отсутствует – в качестве контролируемого назначается каталог с исполняемым модулем программы, а список исключений пуст.
Также нужно сказать о том, что при запуске программы, при условии что одноименных файлов нет – ее главное окно будет скрыто через две секунды после подготовки первого отчета. Это сделано для того, чтобы программу можно было включать в меню автозагрузки Windows, как любую другую фоновую программу (при запуске программы ее главное окно выступает в качестве заставки).
5. Руководство по использованию программы
Для запуска курсового проекта необходимо запустить файл Filenames.exe.