Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вывод информации о системе при помощи WMI спо.doc
Скачиваний:
9
Добавлен:
22.05.2015
Размер:
249.34 Кб
Скачать

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ

ФГБОУ ВПО «Кубанский государственный технологический университет»

Кафедра_____________________________________________

Утверждаю:

Зав. кафедрой____________

________________________

З А Д А Н И Е

на курсовое проектирование

Студенту:________________ группы__________________ курса

факультета ____________________________________________

специальности _________________________________________

тов. __________________________________________________

ф.и.о., шифр

Тема проекта:__________________________________________

______________________________________________________

Содержание задания:____________________________________

______________________________________________________

______________________________________________________

Объем работы __________________________________________

Рекомендуемая литература:________________________________

_______________________________________________________

_______________________________________________________

Срок выполнения проекта: с «__________»_по «____»______20___г.

Срок защиты: «__»____________20___г.

Дата выдачи задания: «__»____________20___г.

Руководитель проекта ____________________________________

подпись , ф.и.о., звание, степень

Задание принял студент ___________________________________

подпись, дата

МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ

ФГБОУ ВПО «Кубанский государственный технологический университет»

Кафедра ___________________________________________________

(наименование кафедры)

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА

к курсовому проекту (работе)

по дисциплине ______________________________________________

(наименование дисциплины)

на тему ____________________________________________________

(тема курсового проекта (работы)

Выполнил(а) студент(ка) группы________________________________

___________________________________________________________

(ф.и.о.)

Руководитель проекта ________________________________________

Защищен _______________ Оценка ________________________

(дата)

Члены комиссии _____________________________________________ _____________________________________________________________________________________________________________________________________

(подпись, дата, расшифровка подписи)

Реферат

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

Ключевые слова: ПРОГРАММА, СИСТЕМА, ИНФОРМАЦИЯ, ЖЕСТКИЙ ДИСК, ПРОЦЕССОР, БАЗА, WMI, WQL.

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

Объектом исследования является вычислительная система, а также служба WMI.

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

Содержание

Введение ………………………………………………………………………... 3

  1. Постановка задачи и методы решения ………………………………….….4

    1. Формулировка задачи …………………………………………………..4

    2. Спецификация задачи …………………………………………………..4

  2. Техническая реализация алгоритма решения ……………………………...5

    1. Выбор языка и среды программирования ……………………………..5

    2. Выбор базы данных языка запросов …………………………………...5

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

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

    5. Описание реализации базы данных …………………………………....9

  3. Описание программы и интерпретация результатов ……………………..10

    1. Результат тестирования программы ………………………………… .10

Заключение ……………………………………………………………………...12

Список использованной литературы …………………………………………..13

Введение

В настоящее время компьютеры приобретают всё большую популярность в мире. Информация о системе является важнейшим фактором в выборе её компонентов и программного обеспечения.

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

Компания Microsoft предоставляет для пользователей Windows удобные инструменты для работы с системной информацией. Windows хранит её в своей специальной службе — WMI.

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

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

    1. Формулировка задачи

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

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

    1. Спецификация задачи

Входными данными являются данные, поступающие от пользователя. Эти данные передают информацию о требуемом параметре. Посредством WQL-запросов из инструментария WMI берётся требуемая системная информация.

Выходными данными является информация, выводимая пользователю.

  1. Техническая реализация алгоритма решения

    1. Выбор языка и среды программирования.

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

В качестве среды разработки была выбрана IDE Visual Studio 2010 Express Edition, поскольку она обладает удобным интерфейсом, богатыми средствами для отладки, широко распространена и бесплатна для некоммерческого использования.

    1. Выбор базы данных и языка запросов

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

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

Язык запросов к службе WMI за нас выбрала Microsoft. Это WQL. По сути он является тем же SQL, только ориентированным на работу с таблицами WMI.

    1. Описание алгоритмов и программы.

Программа подключается к базе данных Microsoft Access, запрашивает из неё нужные имена параметров устройств, требуемые пользователю, после чего строится нужный wql-запрос, который запрашивает из WMI нужную системную информацию. Полученные данные загружаются в datdgridviev и выводятся пользователю.

      1. Подключение к базам

Требуется подключить библиотеку System.Management. Классы из этого пространства имен используются для работы с WMI. А также библиотеку System.Data.OleDb, классы из которой используются для работы с MS Access.

using System.Management;

using System.Data.OleDb;

Создаётся экземпляр OleDbConnection, для того, чтобы подключиться к источнику данных:

OleDbConnection con = new OleDbConnection();

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

OleDbCommand oleCmd = new OleDbCommand();

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

oleCmd.Connection = con;

Далее остаётся указать строку соединения (логин, пароль, поставщик услуг, и самое главное БД)

con.ConnectionString = conStr_osn + path_to_db;

Далее программа пробует соединиться с базой, и если это удаётся, то она передаёт oleCmd пользовательский запрос, который необходимо выполнить.

oleCmd.CommandText = comText;

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

OleDbDataReader reader = oleCmd.ExecuteReader();

      1. Метод заполнения combobox.

Параметры, используемые в методе:

String comText — запрос на основе которого будет заполнятся данными cmb

ComboBox cmb — ComboBox, который будет заполнятся данными на основе запроса comText

String field — столбец, из которого будут браться данные для заполнения ComboBox

В цикле заполняется cmb.Items значениями столбца field из выборки:

while (reader.Read())

{

cmb.Items.Add((reader[field]).ToString());

}

После чего соединения закрывается.

con.Close();

      1. Метод заполнения DataGridView.

Параметры, используемые в методе:

DataGridView dtv — DataGridView который будет заполнятся данными на основе запроса query

String query — запрос на основе которого будет заполнятся dtv

String name_table — имя таблицы из которой будет извлекаться информация

Создаем запрос на языке WQL для WMI

WqlObjectQuery wql_query = new WqlObjectQuery("Select " + reader[1].ToString() + " from " + name_table);

Создаем экземпляр ManagementObjectSearcher, который будет получать набор данных на основе запроса переданного ему (wql_query)

ManagementObjectSearcher finder = new ManagementObjectSearcher(wql_query);

Пробуем получить данные, затем построчно заполняем полученными данными

foreach (ManagementObject mo in finder.Get())

Если первый столбец не содержит значения null, то

добавляем строку в dtv

dtv.Rows.Add();

заносим в нулевой столбец только что созданной строки dtv название выводимого параметра

dtv.Rows[dtv.Rows.Count - 1].Cells[0].Value = reader[0].ToString();

заносим в первый столбец только что созданной строки dtv значение параметра

dtv.Rows[dtv.Rows.Count - 1].Cells[1].Value = mo[reader[1].ToString()].ToString();

Закрываем соединение.

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

Текст программы вынесен в приложение А «Листинг программы»

    1. Описание реализации базы данных

В базе данных Access создано 9 таблиц. В одной хранятся названия классов, а в других названия параметров WIN32, которые и извлекаются из WMI. Все они имеют по 2 столбца. В первом хранятся описания параметров или процедур, а во втором сам параметр или процедура.

Таблица 2.1 – Главная таблица базы данных (База классов)

Win32_BIOS

Win32_BIOS class

Win32_CDROMDrive

Win32_CDROMDrive class

Win32_DesktopMonitor

Win32_DesktopMonitor class

Win32_DiskDrive

Win32_DiskDrive class

Win32_PhysicalMemory

Win32_PhysicalMemory class

Win32_Processor

Win32_Processor class

Win32_VideoConfiguration

Win32_VideoConfiguration class

Win32_VideoController

Win32_VideoController class

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

Таблица 2.2 – Таблица классов BIOS

SMBIOSPresent

SMBIOSPresent

Версия SMBIOS

SMBIOSBIOSVersion

Версия

Version

Кодовый набор

CodeSet

Номер сборки

BuildNumber

Описание

Description

Первичный BIOS

PrimaryBIOS

Производитель

Manufacturer

На примере таблицы 2.2 более ясно видна разница между столбцами.

Полный листинг базы данных приведён в приложении Б «База данных»

  1. Описание программы и интерпретация результатов