Конфигурация аппаратных средств
Рефераты >> Информатика >> Конфигурация аппаратных средств

Отредактировав этот файл, Вы можете легко произвести изменения в системном реестре, для этого дважды щелкните на нем, или выберете "Импорт файла реестра,,," из меню "Реестр", и параметры будут добавлены в системный реестр.

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

2. Выбор языка программирования

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

Все поставленные задачи в полной мере решались в среде Visual Basic. Она и была выбрана в качестве средства создания рассматриваемой программы.

3. Описание алгоритма работы программы

3.1. Сбор сведений

.Inf – файлы.

В папке Windows/INF собраны файлы, в которых находится информация об устанавливаемом оборудовании при инсталляции или загрузке операционной системы. И среди прочей служебной информации есть сведения о классе того или иного устройства, описываемого конкретным файлом. Все файлы этой папки мы просматриваем (.inf-файлы, в которых отсутствуют такие сведения нами не рассматриваются, а в программе пропускаются) и создаём список классов всех возможно установленных устройств.

3.2. Сравнение с информацией системного реестра

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

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

Весь процесс сбора информации сопровождается выводом на экран окна «Сбор сведений» (рис.1), в котором динамически отображаются результаты поиска и идентификации.

3.3. Отображение полученной информации.

Интерфейс пользователя

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

· Процессор;

· Системная плата;

· Память;

· Диски;

· Адаптеры и др.устройства;

· Устройства ввода/вывода.

Далее следовало создание формы в среде Visual Basic, на которой были

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

Внешний вид формы приведён на рисунке 2.

Отображение информации.

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

Линейка быстрой помощи

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

4. Текст программы

Ниже приводится текст разработанной программы:

Код формы HV1(HV1.frm):

Private Sub Form_Load()

Progress.Show

Call SB_Sveden

Progress.Hide

End Sub

Private Sub Form_Unload(Cancel As Integer)

End

End Sub

Private Sub Command1_Click()

SubK$ = "Hardware\Description\System\CentralProcessor\0"

On Error GoTo Noread

ProcID$ = HV1.RegCtrl1.RReadValue(HK$, SubK$, "Identifier")

Noread: On Error Resume Next

On Error GoTo Noread1

ProcMMX$ = HV1.RegCtrl1.RReadValue(HK$, SubK$, "MMXIdentifier")

Noread1: On Error Resume Next

On Error GoTo Noread2

VendorID$ = HV1.RegCtrl1.RReadValue(HK$, SubK$, "VendorIdentifier")

Noread2: Err.Clear

CpInst$ = ""

If Coproc Then CpInst$ = "Сопроцессор встроенный"

Box1 = ProcID$ & vbCrLf & ProcMMX$ & vbCrLf & VendorID$ & vbCrLf & " " & vbCrLf & CpInst$

On Error GoTo 0

End Sub

Private Sub Command1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Label1.Caption = "Информация о центральном процессоре."

End Sub

Private Sub Command2_Click()

Call B_Text(2)

End Sub

Private Sub Command2_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Label1.Caption = "Информация о системной плате."

End Sub

Private Sub Command3_Click()

Dim clsMem As New clsMemorySnapshot

Box1 = "Объём физической памяти : " & Format(clsMem.TotalMemory \ 1024, "###,###,###,###,##0") & " KB" & vbCrLf & "Свободно : " & Format(clsMem.FreeMemory \ 1024, "###,###,###,###,##0") & " KB*" & vbCrLf

End Sub

Private Sub Command3_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)

Label1.Caption = "Информация о памяти."

End Sub

Private Sub Command4_Click()

ms = MsgBox("Рекомендуется вставить диски во все дисководы.", vbOKCancel, "ВНИМАНИЕ!")

GetDiskInfo

Box1 = ""

For Ka = 1 To n

tc$ = Str((BytesPerSec(Ka) * SecsPerClus(Ka) * TotalNumOfClus(Ka) / 1000) / 1000)

fc$ = Str((BytesPerSec(Ka) * SecsPerClus(Ka) * NumOfFreeClus(Ka) / 1000) / 1000)

Box1 = Box1 & "Информация о диске: " & Drives(Ka) & vbCrLf & _

"Метка тома: " & VNBuffer(Ka) & vbCrLf & _

"Файловая система: " & vSysBuff(Ka) & vbCrLf & _

"Серийный номер: " & vSerialNum(Ka) & vbCrLf & _

"Тип диска: " & TypeOfDrive(Ka) & vbCrLf & _

"Общее количество кластеров: " & TotalNumOfClus(Ka) & vbCrLf & _

"Количество свободных кластеров: " & NumOfFreeClus(Ka) & vbCrLf & _

"Секторов в кластере: " & SecsPerClus(Ka) & vbCrLf & _

"Байтов в секторе: " & BytesPerSec(Ka) & vbCrLf & _

"Емкость: " & tc$ & "mb" & vbCrLf & _

"Свободно: " & fc$ & "mb" & vbCrLf & " " & vbCrLf


Страница: