Описание программной реализации приложения



Программная реализация была реализована с помощью PyCharm 2017.2.2. Проект реализован на языке программирования Python с использованием Windows Management Instrumentation (WMI). Программный проект представляет собой приложение для Windows, состоящее из основного окна приложения и главного меню (рисунок 1).

Главное окно приложения содержит кнопки и область экрана, куда выводится информация о конфигурации.

Рисунок 1 – Внешний вид приложения

 

Определение конфигурации центрального процессора

Для определения конфигурации центрального процессора используется функция cpu(). Извлечение информации о центральном процессоре происходит при обращении к свойствам класса Win32_Processor. В данном разделе используются свойства:

- Caption – краткое описание процессора;

-  Name – имя процессора;

-  Manufacturer – производитель процессора;

-  CurrentClockSpeed – текущая скорость процессора в MHz;

- MaxClockSpeed – максимальная скорость процессора в MHz;

- LoadPercentage – загрузка процессора в прошлую секунду в %;

- CpuStatus – статус процессора;

- ProcessorType – тип процессора;

- SocketDesignation – тип chip socket'a;

- NumberOfCores – количество ядер.

Определение характеристик жестких дисков

Для определения характеристик жестких дисков накопителей используется функция GetFizDisk().

Для определения имен логических дисков, которые присутствуют в системе, используется функция GetLogicalDrives() WinAPI. Эта функция возвращает переменную типа DWORD. Далее, используя побитовые сдвиги и накладывая битовую маску, получаем информацию о присутствии того, или иного имени в системе.

Далее в цикле для каждого логического диска, используя функцию GetDriveType() WinAPI в зависимости от значения, которое вернула функция, определяется тип диска. Тип диска может иметь следующие значения:

- DRIVE_UNKNOWN – тип диска неизвестен;

- DRIVE_FIXED – жесткий диск;

- DRIVE_CDROM – CDROM;

- DRIVE_REMOVABLE – съемный накопитель;

- DRIVE_REMOTE – съемный диск;

- DRIVE_RAMDISK – RAM диск.

Для рассмотрения функцией используются только жесткие диски.

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

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

Определение параметров мыши

Для определения характеристик мыши используется функция GetInpMouse().

Информацию о мыши дает функция GetSystemMetrics() WinAPI  с входным параметром SM_CMOUSEBUTTONS. В результате, функция возвращает количество кнопок мыши, либо значение 0, если мышь не подключена.

 

Определение характеристик сетевых адаптеров

Для определения характеристик сетевых адаптеров используется функция GetNetAdapter().

Функция Get AdaptersInfo() позволяет узнать сетевые настройки сетевой карты локального компьютера. Для использования этой функции необходимо, чтобы был установлен Platform SDK.

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

 

Определение времени работы операционной системы

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

Всю необходимую информацию для определения операционной системы возвращает функция GetVersionEx() WinAPI, параметром которой является указатель на структуру OSVERSIONINFOEX. В результате поле dwMajorVersion в сочетании с полем dwMinorVersion структуры дают возможность определить тип операционной системы. Поле osvi.szCSDVersion содержит информацию об установленных Service Pack’ах, а поле dwBuildNumber – номер сборки ОС.

Время запуска и завершения Windows программа берет из системного журнала (Event Log) System.

Для доступа к реестру используются функцуии RegOpenKeyEx() и RegEnumKey() WinAPI. 

 

https://docs.microsoft.com/en-us/windows/desktop/wmisdk/wmi-tasks--operating-systems

После этого с помощью функции RegisterEventSource() открывается выбранный протокол, и происходит чтение блока сообщений функцией  ReadEventLog(), для всех считанных сообщений формируется тип сообщения (с помощью функции GetEventTypeName()), формируется время создания сообщения (с помощью функции GetTimestamp()), определяется источник и код. Временем старта Windows считается код 6005 – запуск службы сообщений, а временем завершения Windows считается код 6006 – остановка службы сообщений.

Заключение

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

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

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

При выполнении проекта были приобретены навыки программирования на языке C++: использование указателей, работа с массивами, записями, работа со строками.


Дата добавления: 2019-01-14; просмотров: 256; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!