Разработка программы, формирующей список загруженных в основной поток драйверов устройств и копирование файлов заданного типа в ОП драйверов устройств

Требования к разрабатываемой программе. Функциональное назначение, входные и выходные данные программы, её логическая структура и область применения. Программа работы с основным потоком драйвера, эксплуатационные документы и руководство программиста.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 30.01.2016
Размер файла 545,1 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

РГРТУ

Кафедра ЭВМ

Пояснительная записка к курсовой работе

по курсу

«Операционные системы»

Тема: «Разработка программы, формирующей список загруженных в ОП драйверов устройств и копирование файлов заданного типа»

Выполнил:

ст группы 242.

Проверил:

доцент кафедры ЭВМ

Засорин С.В.

Рязань 2006 г.

Содержание

Введение

1. Техническое задание

1.1 Введение

1.2 Основание для разработки

1.3 Назначение разработки

1.4 Требования к программе

1.4.1 Требования к функциональным характеристикам

1.4.2 Требования к надежности

1.4.3 Условия эксплуатации

1.4.4 Требования к составу и параметрам технических средств

1.4.5 Требования к информационной и программной совместимости

1.4.6 Требования к маркировке и упаковке

1.4.7 Требования к транспортированию и хранению

1.5 Требования к программной документации

1.6 Технико-экономические показатели

1.7 Стадии и этапы разработки

1.8 Порядок контроля и приемки

2. Описание программы

2.1 Общие сведения

2.2 Функциональное назначение

2.3 Описание логической структуры

2.4 Используемые технические средства

2.5 Вызов и загрузка

2.6 Входные данные

2.7 Выходные данные

3. Пояснительная записка

3.1 Введение

3.2 Назначение и область применения

3.3 Технические характеристики

3.3.1 Постановка задачи

3.3.2 Описание алгоритма и функционирования программы

3.3.3 Описание и обоснование метода организации входных и выходных данных

3.3.4 Описание и обоснование выбора состава технических и программных средств

3.4 Ожидаемые технико-экономические показатели

3.5 Источники, использованные при разработке

4. Программа и методика испытаний

4.1 Объект испытаний

4.2 Цель испытаний

4.3 Требования к программе

4.4 Требование к программной документации

4.5 Средства и порядок испытаний

4.6 Методы и результаты испытаний

5. Эксплуатационные документы

5.1 Описание применения

5.1.1 Назначение программы

5.1.2 Условия применения

5.1.3 Описание задачи

5.1.4 Входные и выходные данные

5.2 Руководство системного программиста

5.2.1 Общие сведенья о программе

5.2.2 Структура программы

5.2.3 Настройка программы

5.2.4 Проверка программы

5.2.5 Дополнительные возможности

5.2.6 Сообщения системному программисту

5.3 Руководство программиста

5.3.1 Назначение и условия применения программы

5.3.2 Характеристика программы

5.3.3 Обращение к программе

5.3.4 Входные и выходные данные

5.3.5 Сообщения

Список литературы

Приложение

Введение

Тема курсовой работы: ‹‹Разработка 2х-поточного приложения, формирующего список загруженных в ОП драйверов устройств и копирование их на дисковый носитель››

Цель данной курсовой работы - научиться работать с API Windows и научиться создавать многопоточные приложения.

Программа отображает список драйверов загруженных в ОП в данный момент и позволяет копировать любой из указанных файлов на любой дисковый носитель, имеющийся в системе.

1. Техническое задание

1.1 Введение

Программа служит для поиска и отображения списка драйверов, существующих в системе в данный момент. Для каждого найденного драйвера возможна операция копирования на любой дисковый носитель.

1.2 Основание для разработки

Основанием для разработки данной программы является задание на курсовую работу, вариант № 16.

1.3 Назначение разработки

Программа предназначена для формирования списка драйверов существующих в ОП в данный момент и копирование их в указанную директорию.

Программа предназначена для использования на компьютерах, оснащенных операционной системой Windows Me и выше, и рассчитана на средний уровень квалификации пользователя.

1.4 Требования к программе

1.4.1 Требования к функциональным характеристикам

Программа должна формировать список драйверов устройств существующих в ОП на данный момент.

Программа должна выполнять следующие функции:

1. Просмотр в памяти загруженных драйверов устройств и вывод о них информации.

2. Копирование файлов заданного типа из памяти на логические диски в заданные дириктории.

1.4.2 Требования к надежности

При нормальном функционировании операционной системы (без ошибок) программа должна обеспечивать безошибочное функционирование, то есть недолжно возникать сообщений об ошибках непредусмотренных в программе.

1.4.3 Условия эксплуатации

Температура окружающего воздуха, относительная влажность и другие параметры окружающей среды должны соответствовать требованиям к условиям эксплуатации ЭВМ и оптических носителей.

Программа во время своей эксплуатации не требует обслуживания.

Для работы с программой требуются пользователи, уровень квалификации которых достаточен для работы с операционной системой Windows Me и выше.

1.4.4 Требования к составу и параметрам технических средств

Основные требования к компьютеру определятся операционной системой (Windows Me и выше) необходимой для работы программы.

Дополнительные требования:

видеокарта и монитор SVGA

мышь

1.4.5 Требования к информационной и программной совместимости

На компьютере должна быть установлена операционная система Windows Me (или выше). Программа должна быть разработана в объектно-ориентированной среде программирования Borland Delphi 7 с использованием функций Windows API. Для программы должна быть спроектирована система установки InstallShield® Express 4.0

1.4.6 Требования к маркировке и упаковке

Отсутствуют.

1.4.7 Требования к транспортированию и хранению

Условия транспортирования, места хранения, условия хранения, условия складирования, сроки хранения в различных условиях определяются типом и видом применяемого носителя. В качестве носителя для программы может выступать магнитный носитель 3,5” или оптический носитель CD-R/RW.

1.5 Требования к программной документации

Документация к программе представлена согласно требованиям следующими разделами:

Введение

Техническое задание (Раздел оформлен по ГОСТ 19.201-78).

Описание программы (Раздел оформлен по ГОСТ 19.402-78).

Пояснительная записка (Раздел оформлен по ГОСТ 19.404-79)

Программа и методика испытаний (Раздел оформлен по ГОСТ 19.301-79)

Эксплуатационные документы:

Описание применения (ГОСТ 19.502-78).

Руководство системного программиста (ГОСТ 19.503-79).

Руководство программиста (ГОСТ 19.504-79).

Приложение. Листинги исходных текстов разработанных программ.

Список литературы.

1.6 Технико-экономические показатели

Программа обладает следующими технико-экономическими подателями:

дешевизна разработки и эксплуатации;

простота использование, действия пользователя сведены к минимуму;

возможность использования программы на персональных компьютерах имеющих базовую конфигурацию.

1.7 Стадии и этапы разработки

Уточнение технического задания и составление полной внешней спецификации программы. Этот пункт отражен в разделе пояснительной записки «Техническое задание».

Эскизное проектирование программы. На данном этапе выполняется разработка общего алгоритма решения поставленной задачи. Материал данного пункта отражается в разделе записки «Описание программы».

Рабочее проектирование программы. Программа кодируется на языке программирования и выполняется ее отладка.

Функциональное и структурное тестирование. Разрабатывается методика проверки правильности функционирования программы и осуществляется ее функциональное и структурное тестирование.

Подготовка и оформление комплекта программных документов. По перечисленным выше пунктам подготавливаются необходимые программные документы, которые составляют основу пояснительной записки к курсовой работе.

1.8 Порядок контроля и приемки

Программа должна пройти все этапы тестирования.

2. Описание программы

2.1 Общие сведения

Программа служит для поиска и отображения списка драйверов, существующих в системе в данный момент. Для каждого найденного драйвера возможна операция копирования на любой дисковый носитель.

Для функционирования программы на компьютере должна быть установлена операционная система Windows Me (или выше) . Программа разработана в объектно-ориентированной среде программирования Borland с использованием функций Windows API. Для программы спроектирована система установки InstallShield® Express.

2.2 Функциональное назначение

Программа служит для поиска и отображения списка драйверов, существующих в системе в данный момент. Для каждого найденного драйвера возможна операция копирования на любой дисковый носитель.

2.3 Описание логической структуры

Программа разрабатывалась объектно-ориентированной среде программирования Borland Delphi 7. Справка разработана с помощью Microsoft® HTML Help WorkShop. В основном модуле программы создаются и запускаются два дополнительных потока.

Программа состоит из следующих модулей:

MainThread.pas- модуль основного потока;

ThrdDrivers.pas- модуль потока выполняющий поиск драйверов устройств в ОП;

ThrdCopy.pas- модуль потока выполняющий копирование файлов;

Htmlhelp.cpp (Htmlhelp.h ) - модуль подключения справки;

FindDrivers.exe- основной модуль программы.

И следующих обязательных файлов:

main.dfm - файл главной формы программы;

mainProject.bpr - файл с параметрами проекта;

Справочная система представлена следующими файлами:

about.htm,

main_window.htm,

menu.htm,

priority.htm,

process_list.htm,

threads_list.htm - файлы с текстом справки;

help.hhp - файл с параметрами проекта справки;

Index.hhk - файл с индексами справочной системы;

help.hhc - файл со структурой содержимого справки.

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

Алгоритм инициализации основного потока представлен на рис. 1, вид формы программы после инициализации на рис. 2. После создания поток отображения процессов начинает выполняться.

Рис 1. Алгоритм инициализации основного потока.

Рис. 2. Вид формы программы после инициализации.

Схема алгоритма инициализации справки представлена на рис. 3.

При нажатии клавиши «F1» отображается справочная информация об элементе, который находился в момент нажатия в фокусе. Схема алгоритма отображения справочной информации приведена на рис. 4.

Рис. 4. Схема алгоритма отображения справочной информации

На рис. 5 приведена схема алгоритма работы программы нахождения драйверов в ОП.

Рис. 5. Обобщенная схема алгоритма работы программы

Схема алгоритма работы процедуры получения списка драйверов приведена на рис. 6

Рис. 6. Алгоритм работы процедуры получения списка драйверов

Функция EnumDiviceDriver() возвращает массив дескрипторов (указателей) драйверов устройств загруженных в оперативную память.

Функции GetDeviceDriverBaseName() и GetDeviceDriverFileName() возвращают Адрес загрузки и Имя файла соответственно. Одним из входных параметров этих функций является дескриптор возвращаемый функцией EnumDiviceDriver().

Входным параметры: Входными параметрами являются дескрипторы драйверов найденные функцией EnumDiviceDriver().

На рис.7 представлен алгоритм работы потока отвечающего за копирование выбранного из таблицы имени образа файла(драйвера).

Рис. 7. Алгоритм работы процедуры копирования файла.

Функция CopyFile(lpExistingFileName,lpNewFileName) копирует файл в заданную дирикторию.

Входные параметры:

lpExistingFileName----Существующий файл ;

lpNewFileName ---- Имя копии файла;

Результатом выполнения этой функции является новый файл(копия родителя).

Программа состоит из трех модулей - модуля основного потока, модуля потока поиска драйверов и модуля потока отвечающего за копирование образа файла.. Структура программы отображена на рис. 8.

программа основной поток драйвер

Рис. 8. Структура программы.

2.4 Используемые технические средства

При работе программы используются ЭВМ удовлетворяющие требованиям, приведенным в разделе 2 - «Техническое задание», пункт 4.4 - «Требования к составу и параметрам технических средств».

2.5 Вызов и загрузка

Для установки программы на ПК ее следует установить с носителя описанного в разделе 2 - «Техническое задание», пункт 4.7 - «Требования к транспортированию и хранению», запустив файл «setup.exe». После установки программа может быть запушена вызовом исполняемого файла «FindDrivers.exe» из каталога «\Program Files\Курсовой проект\ FindDrivers.exe», который обычно находится на том логическом диске, на который установлена ОС.

2.6 Входные данные

При работе программы в качестве входных данных используется дескрипторы драйверов загруженных в ОП.

2.7 Выходные данные

Выходными данными в программе является таблица содержащая следующую информацию:

1. Адрес загрузки драйвера В ОП.

2. Имя драйвера.

3. Путь к образу файла на логическом диске.

4. Размер файла.

3. Пояснительная записка

3.1 Введение

Основанием для разработки данной программы является задание на курсовую работу, вариант № 16. Тема данной курсовой работы: «Разработка программы, формирующей список драйверов загруженных В ОП, существующих в системе в данный момент».

3.2 Назначение и область применения

Программа служит для поиска и отображения списка драйверов загруженных В ОП, существующих в системе в данный момент. Для каждого найденного файла существует возможность копирования его в указанную директорию.

3.3 Технические характеристики

3.3.1 Постановка задачи

Поставлена задача разработки программного приложения с использованием функций Windows API, формирующего список драйверов загруженных в ОП, существующих в системе в данный момент.

Программа должна выполнять следующие функции:

Просмотр в памяти загруженных драйверов устройств и вывод о них следующей информации:

? Адрес загрузки

? Имя файла

? Путь к образу файла

? Размер файла

Ввод исходных данных и вывод результатов должны выполняться через программный интерфейс.

3.3.2 Описание алгоритма и функционирования программы

Описание алгоритма и функционирования программы приведено в разделе 3 -«Описание программы», пункт 3.3 -«Описание логической структуры».

3.3.3 Описание и обоснование метода организации входных и выходных данных

При работе программы в качестве входных данных используется дескрипторы драйверов устройств.

Выходными данными в программе является списки драйверов устройств а также некоторая дополнительная информация. Формат представления выходных данных обусловлен требованием задания к курсовой работе (см. раздел 4 - «Пояснительная записка», пункт 3.1 «Постановка задачи»).

3.3.4 Описание и обоснование выбора состава технических и программных средств

Использование технических средств, приведенных в разделе 2 - «Техническое задание», пункт 4.4 - «Требования к составу и параметрам технических средств» обусловлено требованиями функций Windows API к операционной системе.

Выбор сред разработки указанных в разделе 2 - «Техническое задание», пункт 4.4 - «Требования к информационной и программной совместимости» обусловлен следующими характеристиками и свойствами выбранных продуктов:

Borland Delphi- более удобная работа с функциями Windows API и возможность визуальной разработки формы приложения;

InstallShield® Express 4.0 - встроенная возможность контроля технических средств перед установкой приложения.

3.4 Ожидаемые технико-экономические показатели

Программа обладает следующими технико-экономическими показателями:

дешевизна разработки и эксплуатации;

простота использования;

возможность применения программы на персональных компьютерах, имеющих только базовую конфигурацию системы.

3.5 Источники, использованные при разработке

ГОСТ 19.201-78

ГОСТ 19.402-78

ГОСТ 19.404-79

ГОСТ 19.301-79

ГОСТ 19.502-78

ГОСТ 19.503-79

ГОСТ 19.504-79

ГОСТ 19.105-78

MSDN Library - July 2003

4. Программа и методика испытаний.

4.1 Объект испытаний

Объектом испытаний является программа “Find Drivers” - «Программа поиска драйверов устройств». Программа служит для поиска и отображения списка драйверов устройств, существующих в системе в данный момент.

4.2 Цель испытаний

Целью испытаний является выявление возможных функциональных ошибок и сбоев, возникающих при работе данной программы и обеспечение более устойчивого ее функционирования в процессе эксплуатации.

4.3 Требования к программе

Необходимо проверить правильность функционирования потоков. Так же необходимо проверить работу модулей отвечающих за поиск и копирование драйверов. Правильность обработки исключительных ситуаций.

Программа должна функционировать при отсутствии файла справки программы и системной библиотеки «hhctrl.ocx».

4.4 Требование к программной документации

При проведении испытаний должен присутствовать следующий состав программной документации:

Техническое задание;

Описание программы;

Пояснительная записка;

Программа и методика испытаний;

Эксплуатационные документы.

Весь текстовый материал должен быть оформлен согласно требованиям ГОСТов на программную документацию и подготовлен с помощью текстового редактора Microsoft ® Word.

4.5 Средства и порядок испытаний

Во время проведения испытаний были использованы следующие технические и программные средства:

Компьютер с процессором AMD Athlon™ XP 1600+, с тактовой частотой 1400 МГц;

оперативная память 256 Мб;

видеоадаптер;

жесткий диск Seagate Barracuda ST3120026A объемом 120 Гб;

монитор Philips 107T;

мышь A4 Tech 4-х кнопочная, с двумя колесиками для порта PS/2;

операционная система Windows XP sp1;

система программирования Borland Delphi 6.

Порядок проведения испытаний.

Тестирование методом «белого ящика» потока отображения списка драйверов устройств.

Тестирование методом «белого ящика» потока отвечающего за копирования выбранных файлов

Тестирование методом «черного ящика» потока отвечающего за копирования выбранных файлов.

При тестировании методом «белого ящика» используется способ тестирования базового пути.

При тестировании методом «белого ящика» цикломатическую сложность потокового графа V(G), будем определять тремя способами : V(G) = количеству регионов потокового графа;

V(G) = E - N + 2,

где E - число дуг, N - количество узлов;

V(G) = P + 1,

где P - количество предикатных узлов.

При тестировании методом «черного ящика» используется способ разбиения по классам эквивалентности входных данных. По этой причине при тестировании методом Черного ящика процедуры поиска и отображения драйверов устройств невозможно предугадать всевозможные комбинации дескрипторов. Тестирование методом Черного ящика процедуры поиска драйверов не проводились.

4.6 Методы и результаты испытаний

Тестирование методом «белого ящика» потока отображения списка драйверов устройств. Для данного процесса отсутствуют входные данные, следовательно, невозможно построить классы эквивалентности входных данных.

Результат выполнения потока поиска и вывода списка драйверов устройств:

Рис. 9. Выходные данные программы Find Drivers.

Результат: Данные выводимые программой адекватны. Все перечисленные в таблице драйвера действительно находятся в папке C:\Windows\Drivers\.

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

Тестирование методом «белого ящика» функции поиска и отображения списка драйверов устройств.

Текст функции ‹‹Поиск драйверов устройств››:

Procedure TSimpleThread.Find;

Var

bRes: BOOL;

lpImageBase: array[0..1000] of Pointer ;

lpBaseName: array[0..1000] of char;

Needed: DWORD;

ArrSize: integer;

i: integer; Блок инициализации переменных.

T1, T2: string;

BaseNameLength: DWORD;

hFile: Cardinal;

hDirectory: array[0..254] of char;

dir: PChar;

tmp: String;

j:integer;

begin

j:=0;

Needed := 0;

1 bRes := EnumDeviceDrivers(@lpImageBase, 0, Needed);

bRes := EnumDeviceDrivers(@lpImageBase, Needed, Needed);

2 if bRes then

begin

ArrSize := Needed div sizeof(Pointer);

3 for i := 0 to ArrSize - 1 do

begin

4 if lpImageBase[i] <> nil then

begin

Form1.ProgressBar2.Position:=j;

6 BaseNameLength := GetDeviceDriverBaseName(lpImageBase[i], @lpBaseName, 1000);

T1 := lpBaseName;

6 BaseNameLength := GetDeviceDriverFileName(lpImageBase[i], @lpBaseName, 1000);

T2 := lpBaseName;

8 Form1.SG.Cells[0, i+1] := Format('%p', [lpImageBase[i]]);

8 Form1.SG.Cells[1, i+1] := T1;

GetWindowsDirectory(hDirectory,255);

inc(j);

if T2[1]='\' then

if T2[2]='?' then

dir:=pchar(copy(T2,5,Length(t2)))

else

if (copy(T2,0,11) ='\SystemRoot') then

dir:=pchar(hDirectory+ copy(T2,12,length(t2)))

else

dir:=pchar(hDirectory[0]+':'+T2)

else

dir:=pchar(hDirectory+'\system32\drivers\'+T2)

Form1.SG.Cells[2, i+1] := dir;

hFile:=CreateFile(dir,GENERIC_READ ,FILE_SHARE_READ,nil,OPEN_EXISTING,0,0);

if hFile<>INVALID_HANDLE_VALUE then

7 Form1.SG.Cells[3, i+1] := IntToStr(GetFileSize(hFile,nil))

else Form1.SG.Cells[3, i+1] := 'Error: ' + IntToStr(GetLastError)

end;

end;

Form1.SG.RowCount := i+1;

end

else

5 ShowMessage('Ошибка сбоя ОС!');

end;

Потоковый граф имеет вид:

Рис. 10. Потоковый граф функции поиска и отображения списка драйверов устройств.

V(G) Цикломатическая сложность графа. = 3;

V(G) = E - N + 2 = 10 - 8 +2 = 4;

V(G) = P + 1 = 2 + 1 = 3.

Множество независимых путей:

1-2-5

1-2-3-5

1-2-3-4-7-5

1-2-3-4-6-8-4-7-5

Путь: 1-2-3-4-6-8-4-7-5 является показателем нормального функционирования функции поиска драйверов. Остальные пути возникают при обработке исключительных ситуаций(Ошибках).

Текст процедуры ‹‹Копирования заданного файла››:

Procedure TSimpleCopy.CopyFileTo;

Var

S:String;

k:integer;

lpExistingFileName, lpNewFileName:PChar; Инициализация переменных.

bFailIfExists: BOOL;

1. begin

2. If (Form1.Edit1.Text='' )or (Form1.Edit1.Text='*.*')

then

4. MessageDlg('Выберите файл который следует скопировать',mtError,[mbOK],0 )

else begin

S:=Form1.DirectoryListBox1.Directory+'\'+Form1.Edit2.Text;

lpNewFileName:= PChar(S);

lpExistingFileName:=PChar(Form1.Edit1.Text);

3. CopyFile(lpExistingFileName,lpNewFileName,True);

For k:=1 to 100 do

begin

Form1.ProgressBar1.Position:=k;

end;

5.MessageDlg('Файл успешно скопирован на диск'+#13#10+Form1.DirectoryListBox1.Directory,mtInformation,[mbOK],0 )

end;

end;

Потоковый граф имеет вид:

Рис. 11. Потоковый граф процедуры копирования.

V(G) = 2;

V(G) = E - N + 2 = 8 - 7 +2 = 2;

V(G) = P + 1 = 1 + 1 = 2

Множество независимых путей:

1. 1-2-4-5

2. 1-2-3-5

Тестирование путей потокового графа.

Путь 1-2-4-5

Входные данные : Путь к образу файла на логическом носителе.

Ожидаемые данные: Вывод сообщения `Файл не выбран' .

Выходные данные:

Путь 1-2-3-5

Входные данные : Путь к образу файла на логическом носителе.

Ожидаемые данные: Вывод сообщения `Файл успешно скопирован' .

Выходные данные:

Текст процедуры ‹‹Копирования заданного файла›› методом «чёрного ящика»:

Тестирование процедуры копирования будет проведено в соответствии с требованиями к разработке, методом чёрного ящика с использованием способа разбиения по эквивалентности.

Входными данными является имя файла. Разобьём всё множество входных данных на 3 класса эквивалентности:

некорректные исходные данные

задано имя конкретного файла

задана маска, определяющая тип файлов

Правильность работы процедуры будем проверять с помощью стандартного приложения Windows “Проводник”

тестового задания

Описание тестового задания

Исходные данные

Ожидаемые результаты

Полученные результаты

1

Некорректные исходные данные

675

Сообщение об ошибке

Сообщение об ошибке, приведённое на рисунке 20

2

Задано имя конкретного файла

1.txt

Файл будет скопирован

Файл был скопирован

3

Задана маска, определяющая тип файлов

*.htm

Будут скопированы все файлы с диска А с расширением htm

Все файлы были скопированы

5. Эксплуатационные документы

56.1 Описание применения

5.1.1 Назначение программы

Программа служит для поиска и отображения списка драйверов загруженных В ОП, существующих в системе в данный момент. Для каждого драйвера, существует возможность копирование на любой из логических дисков.

5.1.2 Условия применения

Для работы программы основные требования к компьютеру определятся операционной системой (Windows Me и выше) необходимой для работы программы.

Дополнительные требования:

видеокарта и монитор SVGA

мышь

наличие 1Мб свободного места на жестком диске.

В качестве носителя для программы может выступать магнитный носитель 3,5” или оптический носитель CD-R/RW.

5.1.3 Описание задачи

Поставлена задача разработки программного приложения с использованием функций Windows API, формирующего список драйверов устройств существующих в ОП в данный момент.

Программа должна выполнять следующие функции:

Создать таблицу, в которой выводится следующая информация о драйверах устройств:

Адрес загрузки драйвера;

Имя драйвера;

Путь к образу файла на лог диске;

Размер файла.

Ввод исходных данных и вывод результатов должны выполняться через программный интерфейс.

5.1.4 Входные и выходные данные

При работе программы в качестве входных данных используется дескрипторы драйверов загруженных В ОП. Такой способ организации входных данных является единственным способом реализации данного приложения.

Выходными данными в программе является списки драйверов устройств найденных на данном компьютере, а так же некоторая дополнительная информация такая как “Адрес загрузки', `Путь к образу файла', `Размер файла'. Формат представления выходных данных обусловлен требованием задания к курсовой работе (см. раздел 5 - «Эксплуатационные документы», пункт 1.3 «Описание задачи»).

5.2 Руководство системного программиста

5.2.1 Общие сведенья о программе

Программа служит для отображения списка драйверов существующих в системе в данный момент В ОП. Область применения программы - демонстрационная. Программа демонстрирует возможности использований API функций.

Для работы программы основные требования к компьютеру определятся операционной системой (Windows Me и выше) необходимой для работы программы.

Дополнительные требования:

видеокарта и монитор SVGA

мышь

наличие 630 Кб свободного места на жестком диске.

5.2.2 Структура программы

Данная программа, листинг которой приведен в разделе «Приложение» содержит:

MainThread.pas- модуль основного потока;

ThrdDrivers.pas- модуль потока выполняющий поиск драйверов устройств в ОП;

ThrdCopy.pas- модуль потока выполняющий копирование файлов;

Htmlhelp.cpp (Htmlhelp.h ) - модуль подключения справки;

FindDrivers.exe- основной модуль программы

Модули взаимодействуют между собой в соответствии логической структурой приведенном в разделе 3 - «Описание программы», пункте 1.3 - «Описание логической структуры».

5.2.3 Настройка программы

После установки программа не нуждается в дальнейшей настройке на соответствующие технические требования, указанные в разделе 2 - «Техническое задание», пункте 4.4 - «Требования к составу и параметрам технических средств» и пункте» и пункте 4.5 «Требования к информационной и программной совместимости». Проверка соответствия требования производиться на этапе установки.

5.2.4 Проверка программы

Проверку работоспособности программы можно выполнить, опираясь на радел 5 -«Программа и методика испытаний» данной документации.

5.2.5 Дополнительные возможности

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

1. Создание директории в произвольном месте логического пространства диска.

2. Удаление файлов.

Все вышеперечисленные функции организованы в виде всплывающего Меню. Рис.12

5.2.6 Сообщения системному программисту

В ходе выполнения установки программы при несоответствии технических требований (указанные в разделе 2 - «Техническое задание», пункте 4.4 - «Требования к составу и параметрам технических средств» и пункте» и пункте 4.5 «Требования к информационной и программной совместимости») будет выдано сообщение о несоответствии техническим требованиям. Тексты сообщений не приводятся, так как исходные тексты программы InstallShield® Express недоступны.

Сообщения об ошибках в ходе выполнения программы:

«Невозможно загрузить hhctrl.ocx» (Рис. 13) выводиться в случае отсутствия в системе данной библиотеки, необходимой для отображения справки в формате Html Help. Получение данного сообщения говорит о нарушении функционирования ОС, так как данная библиотека включена в поставку операционных систем необходимых для работы программы (см. раздел 1 - «Техническое задание», пункт 3.5 «Требования к информационной и программной совместимости»).

Рис. 12. Меню создания новой директории.

Рис. 13. Сообщение об ошибке «Невозможно загрузить hhctrl.ocx».

«Невозможно загрузить файл справки» (рис. 27) выводиться в случае отсутствия в папке, где расположена программа, файла справки «html.chm». Получение данного сообщения говорит о нарушении целостности установки программы.

Рис. 14. Сообщение об ошибке «Невозможно загрузить файл справки».

«Справка не инициализирована» (рис. 14) выводиться в случае отсутствия в системе данной библиотеки или ее повреждения. Получение данного сообщения говорит о нарушении функционирования ОС.

Рис. 15. Сообщение об ошибке «Справка не инициализирована».

Рис. 16. Сообщение об ошибке ‹‹Выберите файл который следует скопировать››

Сообщение показанное на рис.15 выводится если не указать файл при выполнении операции копирования.

Рис. 17. Сообщение об успешном выполнении операции копирования.

Рис. 18. Сообщение о подтверждении удаления файла.

При нажатии на кнопку OK файл будет удален. При нажатии на кнопку Cancel действие связанное с удалением будет прекращено и выведено сообщение показанное на рис. 18

Рис. 19

Если неверно указано имя файла или диск защищён от копирования, будет выдано сообщение, показанное на рисунке 20

Рис. 20

5.3 Руководство программиста

5.3.1 Назначение и условия применения программы

Программа служит для отображения списка драйверов существующих в системе в данный момент В ОП. Область применения программы - демонстрационная. Программа демонстрирует возможности использований API функций.

Для работы программы основные требования к компьютеру определятся операционной системой (Windows Me и выше) необходимой для работы программы.

Дополнительные требования:

видеокарта и монитор SVGA

мышь

наличие 630 Кб свободного места на жестком диске.

В качестве носителя для программы может выступать магнитный носитель 3,5” или оптический носитель CD-R/RW.

5.3.2 Характеристика программы

Программа служит для контроля вычислительного процесса в ОС Windows.

Контроль правильности выполнения программы осуществляется в соответствии с разделом 5 -«Программа и методика испытаний» данной документации.

5.3.3 Обращение к программе

Вызов программы осуществляется запуском файла «FindDrivers.exe» из каталога, в который была установлена программа, или из меню «Пуск» - FindDrivers.

5.3.4 Входные и выходные данные

Описание входных и выходных данных приведено в разделе 6 - «Эксплуатационные документы», пункте 1.4 - «Входные и выходные данные».

5.3.5 Сообщения

В ходе выполнения программы могут выдаваться сообщения, приведенные в разделе - 5 «Эксплуатационные документы», пункте 2.6 - «Сообщения системному программисту».

Список используемой литературы

1. Методические указания. `Операционные системы' Автор : Засорин С.В.

2. Справочник по функциям ` Win 32 API' Автор: Верма Р.Д.

3. Визуальная разработка приложений. Delphi 7. Автор: Хамоненко А

Приложение

Листинг модуля: Main.pas

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Buttons,Thrd,ThrdCopy, ComCtrls, Grids, FileCtrl,

Menus;

type

TForm1 = class(TForm)

SG: TStringGrid;

BitBtn1: TBitBtn;

Edit1: TEdit;

BitBtn2: TBitBtn;

DriveComboBox1: TDriveComboBox;

DirectoryListBox1: TDirectoryListBox;

FileListBox1: TFileListBox;

Label1: TLabel;

Edit2: TEdit;

Label2: TLabel;

ProgressBar1: TProgressBar;

Label3: TLabel;

ProgressBar2: TProgressBar;

Label4: TLabel;

BitBtn3: TBitBtn;

BitBtn4: TBitBtn;

PM1: TPopupMenu;

N1: TMenuItem;

DeleteFile1: TMenuItem;

PM2: TPopupMenu;

k1: TMenuItem;

CreateDirictory1: TMenuItem;

MainMenu1: TMainMenu;

File1: TMenuItem;

CreateDirictory2: TMenuItem;

DeleteFile2: TMenuItem;

Exit1: TMenuItem;

Operations1: TMenuItem;

Find1: TMenuItem;

Copy1: TMenuItem;

Cancel1: TMenuItem;

N71: TMenuItem;

Help1: TMenuItem;

StatusBar1: TStatusBar;

procedure FormCreate(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

procedure SGSelectCell(Sender: TObject; ACol, ARow: Integer;

var CanSelect: Boolean);

procedure BitBtn2Click(Sender: TObject);

procedure DriveComboBox1Change(Sender: TObject);

procedure BitBtn3Click(Sender: TObject);

procedure BitBtn4Click(Sender: TObject);

procedure CreateDirictory1Click(Sender: TObject);

procedure CreateDirictory2Click(Sender: TObject);

procedure Exit1Click(Sender: TObject);

procedure DeleteFile1Click(Sender: TObject);

procedure DeleteFile2Click(Sender: TObject);

private

{ Private declarations }

Procedure AppHint(Sender:TObject);

public

{ Public declarations }

end;

var

Form1: TForm1;

Head:TSimpleThread;

Head1:TSimpleCopy;

SG: TStringGrid;

Priority:TThreadPriority;

LPSECURITY_ATTRIBUTES:PSecurityAttributes;

implementation

{$R *.dfm}

Procedure TForm1.AppHint(Sender:TObject);

begin

StatusBar1.Panels[0].Text:=Application.Hint;

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

Application.OnHint:=AppHint;

Form1.SG.ColCount := 4;

Form1.SG.RowCount := 200;

Form1.SG.ColWidths[0]:= 150;

Form1.SG.ColWidths[1]:= 100;

Form1.SG.ColWidths[2]:= 200;

Form1.SG.ColWidths[3]:= 160;

Form1.SG.Cells[0, 0]:='Адрес загрузки драйвера';

Form1.SG.Cells[1, 0]:='Имя драйвера';

Form1.SG.Cells[2, 0]:='Путь к образу драйвера';

Form1.SG.Cells[3, 0]:='Размер драйвера в байтах';

Head:=TSimpleThread.Create(True);

Head.Priority:=tpLowest;

end;

procedure TForm1.BitBtn1Click(Sender: TObject);

begin

Head.Resume;

end;

procedure TForm1.SGSelectCell(Sender: TObject; ACol, ARow: Integer;

var CanSelect: Boolean);

begin

Form1.ProgressBar1.Position:=0;

If CanSelect=True

then

Edit1.Text:=SG.Cells[Acol,ARow];

Edit2.Text:=SG.Cells[Acol-1,ARow];

end;

procedure TForm1.BitBtn2Click(Sender: TObject);

begin

Head1:=TSimpleCopy.Create(True);

Head1.Resume;

end;

procedure TForm1.DriveComboBox1Change(Sender: TObject);

begin

DriveComboBox1.DirList:=DirectoryListBox1;

DirectoryListBox1.FileList:=FileListBox1;

end;

procedure TForm1.BitBtn3Click(Sender: TObject);

begin

Head1.Terminate;

end;

procedure TForm1.BitBtn4Click(Sender: TObject);

begin

close;

end;

procedure TForm1.CreateDirictory1Click(Sender: TObject);

begin

CreateDirectory(PChar('NewDir'),LPSECURITY_ATTRIBUTES);

end;

procedure TForm1.CreateDirictory2Click(Sender: TObject);

begin

CreateDirectory(PChar('NewDir'),LPSECURITY_ATTRIBUTES);

end;

procedure TForm1.Exit1Click(Sender: TObject);

begin

close;

end;

procedure TForm1.DeleteFile1Click(Sender: TObject);

var

rez:TModalResult;

begin

rez:=MessageDlg('Вы действительно хотите удалить Файл'+#13#10+Form1.DirectoryListBox1.Directory,mtInformation,[mbOK,mbCancel],0 );

if rez=mrOk then

DeleteFile(FileListBox1.FileName)

else

ShowMessage('Прервано пользователем');

end;

procedure TForm1.DeleteFile2Click(Sender: TObject);

var

rez:TModalResult;

begin

rez:=MessageDlg('Вы действительно хотите удалить Файл'+#13#10+Form1.DirectoryListBox1.Directory,mtInformation,[mbOK,mbCancel],0 );

if rez=mrOk then

DeleteFile(FileListBox1.FileName)

else

ShowMessage('Прервано пользователем');

end;

end.

Листинг модуля: Thrd.pas -Поиск драйверов устройств.

unit Thrd;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, PsApi, StdCtrls, ComCtrls, ExtCtrls;

type

TsimpleThread = class(TThread)

private

Head:Tsimplethread;

Procedure Find;

protected

procedure Execute; override;

public

end;

implementation

uses Unit1;

Procedure TSimpleThread.Find;

var

bRes: BOOL;

lpImageBase: array[0..1000] of Pointer;

lpBaseName: array[0..1000] of char;

Needed: DWORD;

ArrSize: integer;

i: integer;

T1, T2: string;

BaseNameLength: DWORD;

hFile: Cardinal;

hDirectory: array[0..254] of char;

dir: PChar;

tmp: String;

j:integer;

begin

j:=0;

Needed := 0;

bRes := EnumDeviceDrivers(@lpImageBase, 0, Needed);

bRes := EnumDeviceDrivers(@lpImageBase, Needed, Needed);

if bRes then

begin

ArrSize := Needed div sizeof(Pointer);

for i := 0 to ArrSize - 1 do

begin

if lpImageBase[i] <> nil then

begin

Form1.ProgressBar2.Position:=j;

BaseNameLength := GetDeviceDriverBaseName(lpImageBase[i], @lpBaseName, 1000);

T1 := lpBaseName;

BaseNameLength := GetDeviceDriverFileName(lpImageBase[i], @lpBaseName, 1000);

T2 := lpBaseName;

Form1.SG.Cells[0, i+1] := Format('%p', [lpImageBase[i]]);

Form1.SG.Cells[1, i+1] := T1;

GetWindowsDirectory(hDirectory,255);

inc(j);

if T2[1]='\' then

if T2[2]='?' then

dir:=pchar(copy(T2,5,Length(t2)))

else

if (copy(T2,0,11) ='\SystemRoot') then

dir:=pchar(hDirectory+ copy(T2,12,length(t2)))

else

dir:=pchar(hDirectory[0]+':'+T2)

else

dir:=pchar(hDirectory+'\system32\drivers\'+T2);

Form1.SG.Cells[2, i+1] := dir;

hFile:=CreateFile(dir,GENERIC_READ ,FILE_SHARE_READ,nil,OPEN_EXISTING,0,0);

if hFile<>INVALID_HANDLE_VALUE then

Form1.SG.Cells[3, i+1] := IntToStr(GetFileSize(hFile,nil))

else Form1.SG.Cells[3, i+1] := 'Error: ' + IntToStr(GetLastError)

end;

end;

Form1.SG.RowCount := i+1;

end

else

ShowMessage('Облом!');

end;

procedure TSimpleThread.Execute;

begin

Synchronize(Find);

end;

end.

Листинг модуля: ThrdCopy.pas--Копирование файлов.

unit ThrdCopy;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, PsApi, StdCtrls, ComCtrls, ExtCtrls;

type

TSimpleCopy = class(TThread)

Procedure CopyFileTo;

private

{ Private declarations }

protected

procedure Execute; override;

end;

implementation

uses

unit1 ;

Procedure TSimpleCopy.CopyFileTo;

var

S:String;

k:integer;

lpExistingFileName, lpNewFileName:PChar;

bFailIfExists: BOOL;

begin

If (Form1.Edit1.Text='' )or (Form1.Edit1.Text='*.*')

then

MessageDlg('Выберите файл который следует скопировать',mtError,[mbOK],0 )

else begin

S:=Form1.DirectoryListBox1.Directory+'\'+Form1.Edit2.Text;

lpNewFileName:= PChar(S);

lpExistingFileName:=PChar(Form1.Edit1.Text);

CopyFile(lpExistingFileName,lpNewFileName,True);

For k:=1 to 100 do

begin

Form1.ProgressBar1.Position:=k;

end;

MessageDlg('Файл успешно скопирован на диск'+#13#10+Form1.DirectoryListBox1.Directory,mtInformation,[mbOK],0 )

end;

end;

procedure TSimpleCopy.Execute;

begin

Synchronize(CopyFileTo);

end;

end.

Размещено на Allbest.ru


Подобные документы

  • Функциональное назначение и область применения программы "Локальный сетевой чат"; логическая структура, технические и программные средства. Требования к программе; характеристика, вызов и загрузка, входные и выходные данные, настройка, интерфейс.

    дипломная работа [1,3 M], добавлен 18.10.2013

  • Описание и функциональное назначение программы по оптимизации функции, ее логическая структура и используемые технические средства. Практическое применение программы, вызов и загрузка, входные и выходные данные, выполнение контрольного примера и листинг.

    курсовая работа [337,4 K], добавлен 26.02.2012

  • Общие сведения о программном средстве по моделированию работы электродвигателя, его функциональное назначение. Описание логической структуры программного обеспечения. Вызов программы modelDPR52, ее загрузка, входные и выходные данные. Листинг программы.

    курсовая работа [420,0 K], добавлен 28.05.2012

  • Понятие и назначение операционной системы, ее структура и элементы, принцип работы и функциональные особенности. Порядок пакетной обработки заданий. Виды модулей, специфика. Функциональность рентабельной программы. Значение драйверов внешних устройств.

    контрольная работа [14,0 K], добавлен 29.10.2010

  • Описание платформы NET Framework. База данных Microsoft Access. Разработка Windows приложения. Модель программирования Windows Forms. Функциональное назначение программы. Входные и выходные данные. Требования к техническому и программному обеспечению.

    курсовая работа [2,2 M], добавлен 15.03.2015

  • Требования к функциональным характеристикам, составу и параметрам технических средств, информационной и программной совместимости. Описание программы: общие сведения, логическая структура. Средства и порядок испытаний. Входные и выходные данные.

    курсовая работа [6,3 M], добавлен 12.01.2015

  • Общие сведения о языке ассемблера. Назначение команды прерывания INT число. Описание логической структуры программы: алгоритм работы, используемые методы, входные и выходные данные. Структура и тестирование программы. Руководство оператора программы.

    курсовая работа [90,0 K], добавлен 01.12.2009

  • Назначение и область применения промышленных роботов. Разработка программы "Кинематическое движение" в среде Delphi для определения основных параметров кинематического движения. Описание работы и листинг программы. Руководство программиста и оператора.

    курсовая работа [499,1 K], добавлен 17.11.2014

  • Разработка программы замены столбца с минимальным элементом на последний столбец, написанной на языке С++. Результаты откладки и тестирования программы. Алгоритм, входные и выходные параметры и логика работы программы, ее функциональное назначение.

    курсовая работа [155,2 K], добавлен 25.03.2012

  • Постановка и актуальность задачи написания программы для перевода текстов с транслита. Метод ее решения, входные и выходные данные. Список процедур и функций выполняемые программой. Ее структура: главная форма, форма "О программе" и "Редактор алфавита".

    курсовая работа [259,8 K], добавлен 26.03.2009

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.