Разработка программы, позволяющей получать информацию о CD/DVD-устройствах
Изложение процесса создания программы, предоставляющей информацию о CD/DVD-приводах, разработанной в среде Microsoft Visual Studio 2008 с языком программирования C#: принципы построения и функционирования системных утилит; методы разработки программы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 27.05.2014 |
Размер файла | 265,4 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Введение
Данный курсовой проект был разработан в среде Microsoft Visual Studio 2008 с языком программирования C#. На сегодня C# поддерживает все современные возможности объектно-ориентированного программирования.
Цель курсовой работы - создать программу, предоставляющую информацию о CD/DVD-приводах. Теоретическая и практическая значимость заключается в закреплении навыков составления алгоритмов поставленных задач и программирования элементов системных утилит.
Системные утилиты - это программы общего пользования не связаны с конкретным применением ПК и выполняют традиционные функции: планирование и управление задачами, управления вводом-выводом и т.д. Другими словами, системные программы выполняют различные вспомогательные функции, например, создание копий используемой информации, выдачу справочной информации о компьютере, проверку работоспособности устройств компьютера и т.п. Необходимо отметить, что часть утилит входит в состав операционной системы, а другая часть функционирует автономно.
В ходе выполнения курсового проекта необходимо провести теоретическое исследование основных принципов построения и функционирования системных утилит; практическое освоение методов разработки современного системного программного обеспечения; реализация элемента системной утилиты.
системные утилиты microsoft visual
1. Теоретическая часть
1.1 Общие сведенья о системном программном обеспечении
Системное программное обеспечение - это комплекс программ, которые обеспечивают эффективное управление компонентами вычислительной системы, такими как процессор, оперативная память, каналы ввода-вывода, сетевое оборудование, выступая как «межслойный интерфейс» с одной стороны которого аппаратура, а с другой приложения пользователя. В отличие от прикладного программного обеспечения, системное не решает конкретные прикладные задачи, а лишь обеспечивает работу других программ, управляет аппаратными ресурсами вычислительной системы и т.д.
К системному программному обеспечению относятся:
-операционные системы (эта программа загружается в ОЗУ при включении компьютера);
-программы - оболочки (обеспечивают более удобный и наглядный способ общения с компьютером, чем с помощью командной строки DOS, например, Norton Commander);
-операционные оболочки - интерфейсные системы, которые используются для создания графических интерфейсов, мультипрограммирования;
-драйверы (программы, предназначенные для управления портами периферийных устройств, обычно загружаются в оперативную память при запуске компьютера);
-утилиты (вспомогательные или служебные программы, которые представляют пользователю ряд дополнительных услуг).
К утилитам относятся:
- диспетчеры файлов или файловые менеджеры
- средства динамического сжатия данных (позволяют увеличить количество информации на диске за счет ее динамического сжатия)
- средства просмотра и воспроизведения
- средства диагностики; средства контроля позволяют проверить конфигурацию компьютера и проверить работоспособность устройств компьютера, прежде всего жестких дисков
- средства коммуникаций (коммуникационные программы) предназначены для организации обмена информацией между компьютерами
- средства обеспечения компьютерной безопасности (резервное копирование, антивирусное ПО).
Часть утилит входит в состав операционной системы, а другая часть функционирует автономно. Большая часть общего (системного) ПО входит в состав ОС. Часть общего ПО входит в состав самого компьютера (часть программ ОС и контролирующих тестов записана в ПЗУ или ППЗУ, установленных на системной плате). Часть общего ПО относится к автономными программами и поставляется отдельно. Общая архитектура программного обеспечения представлена на рисунке 1.
Рисунок 1. Общая архитектура ПО
1.2 Технология WMI
Технология WMI (Windows Management Instrumentation) - это одна из базовых технологий Microsoft для централизованного управления и слежения за работой различных частей компьютерной сети под управлением Windows. WMI пригодится прежде всего администраторам Windows, а также разработчикам программного обеспечения.
Технология WMI - это реализация модели управления предприятием на базе Web (Web-Based Enterprise Management, WBEM), которая в свою очередь разработана при участии не только компании Microsoft, но и целого ряда других компаний. Задачей WBEM является разработка таких стандартов удалённого управления информационной средой предприятия, которые не зависят от конкретного оборудования, сетевой инфраструктуры, операционной системы, файловой системы и т.д. В рамках WBEM была предложена схема Common Information Model (CIM), которая представляет структуру компьютерной системы в виде единой расширяемой объектно-ориентированной модели и поддерживается в WMI.
Разработчики Microsoft реализовали WMI в Windows 98 и в Win95 OSR2, сделали его доступным для NT 4.0, начиная с Service Pack 4 (SP4), и, наконец, интегрировали в Windows 2000 и ХР.
Архитектура WMI состоит из четырех сегментов, показанных на рисунке 2: управляющие программы (management applications), ядро WMI (WMI infrastructure), провайдеры (providers), или поставщики, и управляемые объекты (managed objects).
Рисунок 2 - Архитектура WMI
Менеджер объектов CIM (Common Information Model Object Manager, CIMOM), который обеспечивает обработку всех запросов конечных приложений к WMI и доставку информации от WMI к конечным приложениям. Все провайдеры WMI должны быть зарегистрированы с помощью CIMOM для правильного перенаправления полученных от конечного приложения запросов к нужному провайдеру. Функциональность CIMOM обеспечивает файл winmgmt.exe, который находится в каталоге %SystemRoot%\System32\Wbem\. Этот файл запускается как сервис.
Репозиторий (хранилище классов) CIM. Объекты-экземпляры таких классов создаются провайдером WMI по запросу потребителя. В Windows Server 2003 и Windows XP репозиторий физически располагается в каталоге %SystemRoot%\System32\Wbem\Repositiry\FS\ в файлах objects.data (репозиторий), index.btr (индексный файл), index.map и object.map (файлы контроля над транзакциями). В более ранних версиях Windows, репозиторий располагается в файле cim.rep.
Провайдеры WMI, которые скрывают детали внутренней реализации управляемых объектов, позволяя CIMOM обращаться к этим объектам единообразно, используя WMI API. Фактически провайдеры являются COM-серверами, которые представлены dll-библиотеками в каталоге %SystemRoot%\System32\Wbem\. WMI включает множество встроенных провайдеров, которые предназначены для получения данных из различных источников, например, журналов событий, системного реестра и т.д.
Библиотека поддержки сценариев (WMI scripting library), которая располагается в файле wbemdisp.dll в каталоге %SystemRoot%\System32\Wbem\.
2. Практическая часть
2.1 Постановка задачи
Необходимо разработать программу, позволяющую получать информацию о CD/DVD-устройствах.
Языком программирования был выбран язык C# поскольку он позволяет решать широкий спектр задач, обладает гибкостью и большим количеством удобных в использовании библиотек. Помимо этого, он позволяет использовать как объектно-ориентированный, так и структурный подход. В качестве среды разработки была выбрана MS Visual Studio 2008.
Разработанная утилита позволяет получать информацию о CD/DVD устройствах, а конкретно: наимаенование устройства, возможности, описание устройства, идентификатор устройства, имя , тип устройства и т.д.
Решение было найдено с помощью инструментария управления WMI.
WMI построен по объектно-ориентированному принципу, то есть все данные операционной системы представлены в виде объектов и их свойств и методов.
Все классы группируются в пространства имен, которые иерархически упорядочены и логически связаны друг с другом по определенной технологии или области управления.
При обращение к WMI из Visual Studio, используется System.Management класс запросов к WMI, в котором указываются пространство WMI.
2.2 Листинг программы
using System;
using System.Management;
namespace WMISample
{
public class MyWMIQuery
{
public static void Main()
{
try
{
ManagementObjectSearcher searcher =
new ManagementObjectSearcher("root\\CIMV2",
"SELECT * FROM Win32_CDROMDrive");
foreach (ManagementObject queryObj in searcher.Get())
{
Console.WriteLine("-----------------------------------");
Console.WriteLine("Win32_CDROMDrive instance");
Console.WriteLine("-----------------------------------");
// Console.WriteLine("Availability: {0}", queryObj["Availability"]);
if (queryObj["Capabilities"] == null)
Console.WriteLine('\n');//Console.WriteLine("Capabilities: {0}", queryObj["Capabilities"]);
else
{
UInt16[] arrCapabilities = (UInt16[])(queryObj["Capabilities"]);
foreach (UInt16 arrValue in arrCapabilities)
{
// Console.WriteLine("Capabilities: {0}", arrValue);
}
}
if (queryObj["CapabilityDescriptions"] == null)
Console.WriteLine("CapabilityDescriptions(Возможности): {0}", queryObj["CapabilityDescriptions"]);
else
{
String[] arrCapabilityDescriptions = (String[])(queryObj["CapabilityDescriptions"]);
foreach (String arrValue in arrCapabilityDescriptions)
{
Console.WriteLine("CapabilityDescriptions(Возможности): {0}", arrValue);
}
}
Console.WriteLine("Caption(Наимаенование устройства): {0}", queryObj["Caption"]);
/*Console.WriteLine("CompressionMethod: {0}", queryObj["CompressionMethod"]);
Console.WriteLine("ConfigManagerErrorCode: {0}", queryObj["ConfigManagerErrorCode"]);
Console.WriteLine("ConfigManagerUserConfig: {0}", queryObj["ConfigManagerUserConfig"]);
Console.WriteLine("CreationClassName: {0}", queryObj["CreationClassName"]);
Console.WriteLine("DefaultBlockSize: {0}", queryObj["DefaultBlockSize"]);
*/
Console.WriteLine("Description(Описание устройства): {0}", queryObj["Description"]);
Console.WriteLine("DeviceID(Идентификатор устройства): {0}", queryObj["DeviceID"]);
Console.WriteLine("Drive(Логический диск): {0}", queryObj["Drive"]);
Console.WriteLine("Manufacturer(Производитель): {0}", queryObj["Manufacturer"]);
/*Console.WriteLine("MaxBlockSize: {0}", queryObj["MaxBlockSize"]);
Console.WriteLine("MaximumComponentLength: {0}", queryObj["MaximumComponentLength"]);
Console.WriteLine("MaxMediaSize: {0}", queryObj["MaxMediaSize"]);
Console.WriteLine("MediaLoaded: {0}", queryObj["MediaLoaded"]);
*/
Console.WriteLine("MediaType(Тип устройства): {0}", queryObj["MediaType"]);
/*Console.WriteLine("MfrAssignedRevisionLevel: {0}", queryObj["MfrAssignedRevisionLevel"]);
Console.WriteLine("MinBlockSize: {0}", queryObj["MinBlockSize"]);
*/
Console.WriteLine("Name: {0}", queryObj["Name"]);
//Console.WriteLine("NeedsCleaning: {0}", queryObj["NeedsCleaning"]);
//Console.WriteLine("NumberOfMediaSupported: {0}", queryObj["NumberOfMediaSupported"]);
Console.WriteLine("PNPDeviceID: {0}", queryObj["PNPDeviceID"]);
/*if (queryObj["PowerManagementCapabilities"] == null)
Console.WriteLine("PowerManagementCapabilities: {0}", queryObj["PowerManagementCapabilities"]);
else
{
UInt16[] arrPowerManagementCapabilities = (UInt16[])(queryObj["PowerManagementCapabilities"]);
foreach (UInt16 arrValue in arrPowerManagementCapabilities)
{
Console.WriteLine("PowerManagementCapabilities: {0}", arrValue);
}
}
Console.WriteLine("PowerManagementSupported: {0}", queryObj["PowerManagementSupported"]);
Console.WriteLine("RevisionLevel: {0}", queryObj["RevisionLevel"]);
Console.WriteLine("SCSIBus: {0}", queryObj["SCSIBus"]);
Console.WriteLine("SCSILogicalUnit: {0}", queryObj["SCSILogicalUnit"]);
Console.WriteLine("SCSIPort: {0}", queryObj["SCSIPort"]);
Console.WriteLine("SCSITargetId: {0}", queryObj["SCSITargetId"]);
*/
Console.WriteLine("SerialNumber(Серийный номер): {0}", queryObj["SerialNumber"]);
Console.WriteLine("Size(Размер): {0}", queryObj["Size"]);
Console.WriteLine("Status: {0}", queryObj["Status"]);
//Console.WriteLine("StatusInfo: {0}", queryObj["StatusInfo"]);
//Console.WriteLine("SystemCreationClassName: {0}", queryObj["SystemCreationClassName"]);
Console.WriteLine("SystemName: {0}", queryObj["SystemName"]);
Console.WriteLine("TransferRate(Скорость передачи): {0}", queryObj["TransferRate"]);
Console.WriteLine("VolumeName(Метка тома): {0}", queryObj["VolumeName"]);
Console.WriteLine("VolumeSerialNumber(Серийный номер тома): {0}", queryObj["VolumeSerialNumber"]);
Console.ReadKey();
}
}
catch (ManagementException e)
{
// MessageBox.Show("An error occurred while querying for WMI data: " + e.Message);
}
}
}
}
2.3 Тестирование программы
Утилита является информационной, пример работы представлен на рисунке 3.
Рисунок 3 - Пример работы программы
Данная утилита предоставляет информацию о CD/DVD-устройствах, возможности данных устройств, имя, серийный номер и т.д.
Заключение
В данном курсовом проекте были представлены сведения о системном программном обеспечении и технологии WMI.
Для разработки программы был выбран язык C#, который обладает широкими возможностями для современного объектно-ориентированного подхода в программировании. Среда разработки Visual Studio 2008 имеет весь набор необходимых инструментов для программирования на языке C#.
Результатом курсового проекта является разработанная программа, соответствующая поставленной задаче. Утилита предоставляет необходимую информацию о CD/DVD - устройствах.
Список литературы
1.Кипелин Е.Е. Основные функции BIOS компьютера: учеб. пособие/Кипелин Е.Е. Екатеринбург, ЕГВГ, 2009. 292с.
2.Марк Руссинович. - Внутреннее устройство Windows.
3.Справочник по языку C# - Электрон. дан. - http://msdn.ru
Размещено на Allbest.ru
Подобные документы
Общие сведения о работе программы в среде программирования Microsoft Visual Studio 2008, на языке программирования C++. Ее функциональное назначение. Инсталляция и выполнение программы. Разработанные меню и интерфейсы. Алгоритм программного обеспечения.
курсовая работа [585,5 K], добавлен 24.03.2009Создание программы, реализующей игру "Линии". Среда разработки программы, описание ее общего вида. Основные алгоритмы программы. Реализация программы в среде разработки Microsoft Visual Studio 2008 на языке объектно-ориентированного программирования С++.
курсовая работа [639,0 K], добавлен 16.03.2012Разработка программы FileInfo, выдающей полную информацию о заданном файле с применением языка программирования С++, используя API функции Win 32. Использование пространств имён .NetFramework. Руководство пользователя и системные требования программы.
курсовая работа [1,2 M], добавлен 25.04.2012Рассмотрение основ работы в Microsoft Visual Studio 2010 с языком программирования С#. Реализация программы обработки данных авиапассажиров. Выбор метода ввода данных из текстового файла. Создание фильтра для обработки списка по определенным критериям.
курсовая работа [1,4 M], добавлен 17.01.2016Разработка игры "Угадай персонажа", ее суть и содержание. Запоминание новых персонажей и вопросов, коррекция базы данных. Использование языка программирования С++ и среды разработки Microsoft Visual Studio 2010. Алгоритмы и методы, структура программы.
курсовая работа [571,9 K], добавлен 14.07.2012Изучение принципов построения линейных алгоритмов и простых расчетных программ на языке программирования C. Разработка программы расчета математических выражений на основе вводимых данных. Создание консольных приложений в среде Microsoft Visual Studio.
лабораторная работа [254,4 K], добавлен 23.11.2014Исследование теоретических аспектов разработки программы посредством использования Visual Basic. Анализ достоинств и недостатков данного языка программирования. Изучение особенностей создания интерфейса приложения. Основные этапы реализации программы.
практическая работа [460,6 K], добавлен 22.01.2013Объектно-ориентированная технология создания программ. Среда разработки Visual Studio.NET. Особенности среды Microsoft Visual Studio 2010. Приложения C# для расчетов по формулам, консольный ввод-вывод. Форматирование значений данных. Программы с циклами.
методичка [2,1 M], добавлен 11.09.2014Создание программы с использованием принципов объектно-ориентированного программирования на языке высокого уровня С# средствами Microsoft Visual Studio 2010. Построение алгоритма реализации. Определение математического аппарата, применение его в задаче.
курсовая работа [500,4 K], добавлен 13.01.2015Создание приложения Windows Forms в среде Microsoft Visual Studio 2008. Разработка программы "Курсовой" для организации работы по учёту курсовых работ в учебных заведениях с возможностью добавления, удаления, редактирования и поиска информации.
курсовая работа [2,2 M], добавлен 28.06.2011