Поиск файлов. Internet History. Информация о компьютере. Операции над результатами. Internet Favorites. Полная версия Windows.

Аппаратное обеспечение.

Системные директории.

Таким образом, данное логическое деление было удобно перенести и на сам программный продукт, реализовав его в форме окна с тематическими вкладками.

Разработка иерархии классов программы

Каркас приложения был создан с помощью инструмента AppWizard интегрированной среды разработки Microsoft Visual C++ 6.0. Разработка велась с использованием MFC (Microsoft Foundation Classes). Поэтому, прежде чем перейти к непосредственному описанию пользовательских классов и функций, необходимо привести описание основных использованных MFC - классов.

CSheet, CPropertyPage

Назначение: базовые классы диалогового окна с вкладками. Каркас приложения – объект CSheet, на который добавляются вкладки – объекты CPropertyPage. Добавление производится самостоятельно в конструкторе класса CSheet с помощью метода AddPage().

CDialog

Назначение: базовый класс диалогового окна, содержащий методы работы с ним;

Использованные методы и сообщения:

WM_INITDIALOG, WM_MOUSEMOVE, DoModal(), EndDialog(), WM_LBUTTONDOWN, OnOK(), OnCancel(), GetMenu() и другие.

CAboutDlg

Производный от класса CDialog.

Назначение: класс окна “О программе”(About-window);

Управление окну “O программе” передаёт метод DoModal();

CFileFind

Назначение: класс, содержащий методы файлового поиска;

Использованные методы:

FindFirstFile(),FindNextFile() – поиск файлов;

GetFileName(), IsDots(), GetCreationTime(), GetFilePath(), GetLastWriteTime(),GetLastAccessTime() – соответствующие файловые атрибуты;

НЕ нашли? Не то? Что вы ищете?

CListCtrl

Назначение: класс списка ListControl;

Использованные методы: Insert Column() – вставка столбца, GetItemCount() – число элементов, DeleteAllItems() – очистка списка, SortItems() – сортировка элементов, SetItemData() – установка ассоциированного значения для элемента (используется при сортировке), InsertItem()- вставка элемента, SetItem() – текст, ассоциированный с элементом, GetExtendedStyle(), SetExtendedStyle() – стиль списка, GetFirstSelectedItemPosition() – получение номера первого выделенного элемента, GetNextSelectedItemPosition() - получение номера следующего выделенного элемента.

CEdit

Назначение: класс поля EditBox;

Использованные методы:

Не использовались.

CImageList

Назначение: класс списка Image List;

Цель использования: добавление иконок файлов в список;

Использованные методы:

Create() – создание списка, Add() – добавление, метод Win32API ExtractAssociatedIcon().

CString

Назначение: класс строки, содержащий основные операции со строками;

Цель использования: параметр многих функций;

Использованные методы:

IsEmpty(), Empty(), GetLength(), operator LPCTSTR(прямое обращение к массиву указателей), =, + = .

CProgressCtrl

Назначение: класс элемента управления ProgressBar ;

Использованные методы:

SetRange() – установка размера, SetStep() – установка количества промежуточных позиций.

CButton

Назначение: класс кнопки, производный от CWnd;

Использованные методы:

SetWindowText() – изменение надписи на кнопке.

CFileDialog, СPrintDialog

Назначение: класс стандартного диалога сохранения/открытия файлов и печати в Windows.

Использованные функции Win32API

UpdateData(), UpdateWindow() – обработка изменений и перерисовка окна, MessageBox() – диалоговое окно с сообщением, GetLogicalDriveStrings() - получение названий логических разделов, GetDriveType() – их тип (для исключения переносных), PeekMessage() – проверка очереди системных сообщений и извлечение сообщений в случае их наличия, TranslateMessage() – преобразование и выполнение системного сообщения. Эти две функции необходимы для организации реакции окна во время выполняемого процесса, что позволяет, например, остановить поиск до его окончания, SHGetSpecialFolderPath() – получение адреса определённой системной директории, ShellExecute() – открытие файла средствами ОС Windows, GetDlgItem() – получение указателя на ресурс, OpenClipboard(), EmptyClipboard(), CloseClipboard(), SetClipboardData() - операции с буфером обмена и другие.

Классы, разработанные самостоятельно

Для работы с каждым диалоговым окном (исключая About-window их 9), был создан собственный класс.

Рассмотрим подробнее наиболее важные из этих классов:

CSearchWindow

Самый объёмный класс в программе(SearchWindow. cpp = 1809 строк). Содержит все функции работы с файлами – поиск, сортировку, запуск, и со списком результатов - помещение в буфер обмена, печать, сохранение в файл. Предусмотрена возможность выбора директории поиска (управление передаётся окну класса CBrowse). Поиск осуществляется по:

ü  имени;

ü  дате модификации, создания, последнего просмотра (задаётся какой – либо временной промежуток);

ü  типу файла (видео, документы, рисунки, музыка). Возможно задание другого типа, т. е. поиск по расширению (управление передаётся окну класса CExtension);

ü  атрибутам (скрытый файл, файл только для чтения);

ü  различным комбинациям перечисленных параметров.

Подробнее рассмотрим функции класса CSearchWindow:

Название функции

Описание

CSearchWindow()

Конструктор класса. Инициализирует все связанные с ресурсами переменные.

DatePass(CFileFind &FoundFile)

Проверяет, подходит ли найденный файл по

заданной дате создания (последнего просмотра, модификации)

DisplayItem(CFileFind &FoundFile)

Добавляет в список файл и все его необходимые атрибуты

DoDataExchange(CDataExchange* pDX)

Стандартная функция. Связывает ресурсы приложения с переменными и осуществляет обмен данными окна с внешними процессами.

FindAllCheck(LPCTSTR pstr)

FindHidden(LPCTSTR pstr)

FindHiddenName(LPCTSTR pstr)

FindNameAndReadOnly(LPCTSTR pstr)

FindReadOnly(LPCTSTR pstr)

FindReadOnlyAndHidden(LPCTSTR pstr)

OneRadioOnly(LPCTSTR pstr)

Функции поиска. Передаваемая строка – адрес поиска. Если активирован поиск на всём компьютере, то количество логических разделов жёсткого диска и их названия определяются функцией Win32API GetLogicalDriveStrings(), а тип распознаётся функцией GetDriveType()

OnAllDrives()

Означает щелчок на CheckBox “Искать на всём жёстком диске”.

OnCancel()

Стандартная функция, вызываемая при нажатии кнопки “Отмена”. Модифицирована так, чтобы при старте поиска превратить кнопку в Stop и после окончания поиска снова вернуть в исходное состояние.

OnCHECKHidden()

Означает щелчок на CheckBox “Скрытые файлы”.

OnCHECKName()

Означает щелчок на CheckBox “Поиск по имени”. Открывается для заполнения поле ввода имени.

OnCHECKReadOnly()

Означает щелчок на CheckBox “Файлы только для чтения”.

OnClickAllfiles()

Обработка ситуации, когда выбрано отображение всех файлов на жёстком диске.

Выводится предупреждение о длительности операции и несколько советов. Предоставляется возможность продолжить или отменить дальнейшие действия.

OnColumnclickFoundFiles(NMHDR* pNMHDR, LRESULT* pResult)

Обработка щелчка по кнопке с названием столбца (для сортировки)

OnComeToTree()

управление передаётся окну класса CBrowse(выбор директории поиска).

OnDblclkFoundFiles(NMHDR* pNMHDR, LRESULT* pResult)

При двойном щелчке по файлу он открывается (ShellExecute())

OnInitDialog()

Инициализация диалогового окна.

OnMenuAbout()

управление передаётся окну класса CAboutDlg

OnMenuCopyToBuffer()

Копирование выделенной информации в буфер обмена ( если нет выделения, по умолчанию копируется весь список)

OnMenuQuit()

Выбран пункт меню “Выход”

OnMenuSortCreation()

Сортировка по дате создания

OnMenuSortEdit()

Сортировка по дате последнего просмотра

OnMenuSortModify()

Сортировка по дате модификации

OnMenuSortName()

Сортировка по имени

OnMyMenuPrint()

Печать списка

OnMyMenuSaveInFile()

Сохранение в файл выделенной информации ( если нет выделения, по умолчанию сохраняется весь список)

OnOtherType()

управление передаётся окну класса CExtension (поиск по разрешению)

OnRADIOCreation()

OnRADIOLastModif()

OnRADIOLastView()

Означает щелчок на RadioButton “Дата создания” (“Дата модификации”, ”Дата последнего просмотра”). Открывает для ввода поля с промежутком даты.

OnStartSearch()

Обработчик нажатия кнопки “Поиск”. Передаёт управление центральной функции поиска SearchFunction();

Recurse(LPCTSTR pstr)

Поисковая функция для поиска “Все файлы”

SearchFunction()

Центральная функция поиска. Определяет, по каким параметрам производится поиск и в соответствии с этим передаёт управление соответствующей функции поиска.

TypePass(CFileFind &FoundFile)

Проверка, подходит ли заданный файл по типу (расширению)

WaitLoop()

Обеспечивает реакцию окна на сообщения, посылаемые ему во время выполняемого процесса

static int CALLBACK NameCompare (LPARAM lparam1, LPARAM lparam2, LPARAM lparamsort)

static int CALLBACK CompareCreation (LPARAM lParam1, LPARAM lParam2, LPARAM lParamSort)

static int CALLBACK CompareModify (LPARAM lParam1,LPARAM lParam2, LPARAM lParamSort)

static int CALLBACK CompareEdit (LPARAM lParam1,LPARAM lParam2, LPARAM lParamSort)

Функции сравнения, передаваемые как параметр в SortItems

CHistoryDisplay

Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4

Основные порталы (построено редакторами)

Домашний очаг

ДомДачаСадоводствоДетиАктивность ребенкаИгрыКрасотаЖенщины(Беременность)СемьяХобби
Здоровье: • АнатомияБолезниВредные привычкиДиагностикаНародная медицинаПервая помощьПитаниеФармацевтика
История: СССРИстория РоссииРоссийская Империя
Окружающий мир: Животный мирДомашние животныеНасекомыеРастенияПриродаКатаклизмыКосмосКлиматСтихийные бедствия

Справочная информация

ДокументыЗаконыИзвещенияУтверждения документовДоговораЗапросы предложенийТехнические заданияПланы развитияДокументоведениеАналитикаМероприятияКонкурсыИтогиАдминистрации городовПриказыКонтрактыВыполнение работПротоколы рассмотрения заявокАукционыПроектыПротоколыБюджетные организации
МуниципалитетыРайоныОбразованияПрограммы
Отчеты: • по упоминаниямДокументная базаЦенные бумаги
Положения: • Финансовые документы
Постановления: • Рубрикатор по темамФинансыгорода Российской Федерациирегионыпо точным датам
Регламенты
Термины: • Научная терминологияФинансоваяЭкономическая
Время: • Даты2015 год2016 год
Документы в финансовой сферев инвестиционнойФинансовые документы - программы

Техника

АвиацияАвтоВычислительная техникаОборудование(Электрооборудование)РадиоТехнологии(Аудио-видео)(Компьютеры)

Общество

БезопасностьГражданские права и свободыИскусство(Музыка)Культура(Этика)Мировые именаПолитика(Геополитика)(Идеологические конфликты)ВластьЗаговоры и переворотыГражданская позицияМиграцияРелигии и верования(Конфессии)ХристианствоМифологияРазвлеченияМасс МедиаСпорт (Боевые искусства)ТранспортТуризм
Войны и конфликты: АрмияВоенная техникаЗвания и награды

Образование и наука

Наука: Контрольные работыНаучно-технический прогрессПедагогикаРабочие программыФакультетыМетодические рекомендацииШколаПрофессиональное образованиеМотивация учащихся
Предметы: БиологияГеографияГеологияИсторияЛитератураЛитературные жанрыЛитературные героиМатематикаМедицинаМузыкаПравоЖилищное правоЗемельное правоУголовное правоКодексыПсихология (Логика) • Русский языкСоциологияФизикаФилологияФилософияХимияЮриспруденция

Мир

Регионы: АзияАмерикаАфрикаЕвропаПрибалтикаЕвропейская политикаОкеанияГорода мира
Россия: • МоскваКавказ
Регионы РоссииПрограммы регионовЭкономика

Бизнес и финансы

Бизнес: • БанкиБогатство и благосостояниеКоррупция(Преступность)МаркетингМенеджментИнвестицииЦенные бумаги: • УправлениеОткрытые акционерные обществаПроектыДокументыЦенные бумаги - контрольЦенные бумаги - оценкиОблигацииДолгиВалютаНедвижимость(Аренда)ПрофессииРаботаТорговляУслугиФинансыСтрахованиеБюджетФинансовые услугиКредитыКомпанииГосударственные предприятияЭкономикаМакроэкономикаМикроэкономикаНалогиАудит
Промышленность: • МеталлургияНефтьСельское хозяйствоЭнергетика
СтроительствоАрхитектураИнтерьерПолы и перекрытияПроцесс строительстваСтроительные материалыТеплоизоляцияЭкстерьерОрганизация и управление производством