Реферат по предмету "Информатика, программирование"


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

КУРСОВОЙ ПРОЕКТ
«Программавыдающая полную информацию о наличии портов, частоте процессора, оперативнойпамяти, системного каталога, каталога Windows»
2010 г.

Введение
Системное программное обеспечение предназначено для управленияработой компьютера, распределения его ресурсов, поддержки диалога спользователями, оказания им помощи в обслуживании компьютера, а также длячастичной автоматизации разработки новых программ.
Программы, работающие на компьютере можно разделить на несколькокатегорий:
- прикладные программы, непосредственно обеспечивающие выполнениенеобходимых пользователям работ: редактирование текстов, рисование картинок,обработка информационных массивов.
- Инструментальные системы (системы программирования, обеспечивающиесоздание новых программ на компьютере).
- Системные программы, выполняющие различные вспомогательныефункции, например, создание копий используемой информации, выдачу справочнойинформации о компьютере, проверка работоспособности устройств компьютера.
Таким образом, программное обеспечение – это совокупность программи правил со всей относящейся к ним документацией, позволяющих использоватьвычислительную машину для разрешения различных задач. Системное программноеобеспечение – это комплекс программных модулей, многие из которых поставляютсяодновременно с компьютером. [1]
По окончанию курса «Системное программное обеспечение» стоитзадача в закреплении навыков программирования и создании программных продуктов.Она состоит в написании прикладной программы для просмотра скрытых и системныхфайлов.
В процессе данной работы необходимо научиться создавать программыс необходимой функциональностью, а также с удобным пользователю интерфейсом. Дляреализации был выбран язык C# с использованием классов.NET и Windows Forms,среда разработки Visual Studio 2010.

1. Windows Management Instrumentation – инструментарийуправленияWindows
Windows Management Instrumentation (WMI)в дословном переводе – это инструментарий управления Windows. Если говорить болееразвернуто, то WMI – это одна из базовых технологий для централизованногоуправления и слежения за работой различных частей компьютерной инфраструктурыпод управлением платформы Windows. Технология WMI – это расширенная иадаптированная под Windows реализация стандарта WBEM, принятого многимикомпаниями, в основе которого лежит идея создания универсального интерфейсамониторинга и управления различными системами и компонентами распределеннойинформационной среды предприятия с использованием объектно-ориентированныхидеологий и протоколов HTML и XML.
В основе структуры данных в WBEM лежит Common Information Model(CIM), реализующая объектно-ориентированный подход к представлению компонентовсистемы. CIM является расширяемой моделью, что позволяет программам, системам идрайверам добавлять в нее свои классы, объекты, методы и свойства.
WMI, основанный на CIM, также является открытой унифицированнойсистемой интерфейсов доступа к любым параметрам операционной системы,устройствам и приложениям, которые функционируют в ней.
Важной особенностью WMI является то, что хранящиеся в нем объектысоответствуют динамическим ресурсам, то есть параметры этих ресурсов постоянноменяются, поэтому параметры таких объектов не хранятся постоянно, а создаютсяпо запросу потребителя данных. Хранилище свойств объектов WMI называетсярепозиторием и расположено в системной папке операционной системы Windows: %SystemRoot%\System32\WBEM\Repository\FS.

1.1 Классы, события и безопасность WMI
Так как WMI построен по объектно-ориентированному принципу, то вседанные операционной системы представлены в виде объектов и их свойств иметодов.
Все классы группируются в пространства имен, которые иерархическиупорядочены и логически связаны друг с другом по определенной технологии илиобласти управления. В WMI имеется одно корневое пространство имен Root, котороев свою очередь имеет 4 подпространства: CIMv2, Default, Secutiry и WMI.
Классы имеют свойства и методы и находятся в иерархическойзависимости друг от друга, то есть классы-потомки могут наследовать илипереопределять свойства классов-родителей, а также добавлять свои свойства.
Свойства классов используются для однозначной идентификацииэкземпляра класса и для описания состояния используемого ресурса. Обычно всесвойства классов доступны только для чтения, хотя некоторые из них можномодифицировать определенным методом. Методы классов позволяют выполнитьдействия над управляемым ресурсом.
Каждому экземпляру класса можно обратиться по полному пути,который имеет следующую структуру:
[\\ComputerName\NameSpace] [:ClassName][.KeyProperty1=Value1] [, KeyProperty2=Value2]…]
где
ComputerName – имя компьютера
NameSpace – название пространства имен
ClassName – имя класса
KeyProperty1=Value1, KeyProperty2=Value2 – свойства объекта изначения, по которым он идентифицируется.
Пример обращения к процессу с именем «Calc.exe», который запущенна локальной машине: \\.\CIMv2: Win32_Process. Name= «Calc.exe».
Экземпляры классов могут генерировать события, к которым можноподписываться. При наступлении события WMI автоматически создает экземпляр тогокласса, которому соответствует это событие. Такой механизм удобно использоватьдля выполнения определенной команды при наступлении определенного события, тоесть следить за состоянием объектов операционной системы.
Общая безопасность в WMI реализуется на уровне операционнойсистемы, а дополнительная политика безопасности основана на уровнях пространствимен и протокола DCOM. То есть если пользователь не имеет права делать какое-тодействие через операционную систему, он не сможет это сделать и через WMI. Еслиже пользователю дано какое-то право в операционной системе, то это еще неозначает, что это право будет и в WMI, так как в WMI действуют дополнительныепараметры безопасности на уровне пространств имен.
Каждый объект операционной системы имеет свое описаниебезопасности (SD) со своим списком доступа (ACL), в котором перечисленыидентификаторы пользователей (SID) и их привилегии. Каждое пространство именможет иметь собственное SD со своим ACL, где пользователям могут быть назначеныразрешения на чтение данных, выполнение методов, запись классов и данных идругие. Данные о дополнительных разрешениях хранятся в репозитории WMI.Отдельные классы из пространств имен не имеют собственных описанийбезопасности, они наследуют их от своего пространства имен.
По умолчанию администратор компьютера имеет полные права наиспользование WMI, а остальные пользователи могут лишь вызывать методы,считывать данные и записывать в репозиторий экземпляры классов провайдеров WMI.
Для доступа к инфраструктуре WMI используется протокол DCOM, черезкоторый пользователь подключается к WMI. Чтобы определить, какие права будут уподключившегося пользователя, используется механизмы олицетворения иаутентификации протокола DCOM.
Уровни олицетворения могут принимать следующие значения: Anonymous         Анонимный        WMI-объектне может получить информацию о пользователе – доступ по такому типу непредоставляется
Identify       Идентификация  WMI-объект запрашивает маркердоступа пользователя – доступ предоставляется только локально
Impersonate         Олицетворение   WMI-объект имеет такие жеправа, какие имеет пользователь – рекомендуемый уровень для выполнения командна удаленном компьютере
Delegate     Делегирование   WMI-объект может обратиться от именипользователя к другому WMI-объекту – нерекомендуемый уровень, так как командыможно выполнять удаленно через цепочку из нескольких компьютеров
Уровни аутентификации (подлинности) могут принимать следующие значения:None         Отсутствует        Проверка подлинности отсутствует
Default       По умолчанию   Стандартные настройки безопасности,которые задаются компьютером-целью команды
Connect      Подключение      Проверка только во время подключенияк компьютеру-цели команды, проверка в ходе работы отсутствует
Call   Вызов        Проверка подлинности при каждом запросе ккомпьютеру-цели команды, заголовки пакетов подписываются, но содержимое нешифруется
Pkt    Пакет         Проверка подлинности всех пакетов ккомпьютеру-цели команды, заголовки пакетов подписываются, но содержимое нешифруется
PktIntegrity         Целостность пакета     Проверка подлинности ицелостности всех пакетов к компьютеру-цели команды, заголовки пакетовподписываются, но содержимое не шифруется
PktPrivacy Секретность пакета      Проверка подлинности ицелостности всех пакетов к компьютеру-цели команды, заголовки и содержимоепакетов подписываются и шифруются
1.2 Средства работы с WMI
– wmimgmt.msc – оснастка консоли управления MMC для настройкиWMI на локальном компьютере.
– winmgmt.exe – консольная утилита управления WMI локальногокомпьютера.
– wbemtest.exe – графическая утилита для взаимодействия соструктурой WMI на локальном или удаленном компьютере.
– wmic.exe – консольная утилита для взаимодействия соструктурой WMI на локальном компьютере.
– mofcomp.exe – компилятор MOF-файлов для расширенияструктуры WMI, управления библиотекой классов WMI и восстановления репозитория.
1.3 Язык запросов WMI
Для обращения к объектам WMI используется специфический языкзапросов WMI Query Language (WQL), который является одним из разновидностейSQL. Основное его отличие от ANSI SQL – это невозможность изменения данных, тоесть с помощью WQL возможна лишь выборка данных с помощью команды SELECT.Помимо ограничений на работу с объектами, WQL не поддерживает такие операторыкак DISTINCT, JOIN, ORDER, GROUP, математические функции. Конструкции IS и NOTIS применяются только в сочетании с константой NULL.
Запросы WQL обычно применяются в скриптах, но их также можнопротестировать в программе Wbemtest и в консольной утилите Wmic (утилита wmicне требует написания ключевого слова SELECT и полей выборки).
1.4 Подключение к WMI
В скриптах для подключения к WMI используются два метода: сиспользованием локатора (SWbemLocator) и с использованием моникера (WinMgmts).Метод локатора позволяет установить соединие с пространством имен от имениопределенной учетной записи. Метод моникера разрешает подключаться к WMI толькоот имени текущей учетной записи.
Подключение методом локатора
Использование этого метода необходимо, когда в сценарии нужно явнозадать имя и пароль учетной записи для подключения к WMI. Объект SWbemLocatorсоздается так:
Set mSWbemLocator = CreateObject («WbemScripting.SWbemLocator»)
Подключение к репозиторию WMI производится с помощью методаConnectServer:
mSWbemServices = mSWbemLocator. ConnectServer([ServerName],[NameSpace], [User], _
[Password], [Locate], [Authority],[SecurityFlags], [WbemNamedValueSet])
где
ServerName – имя компьютера (если не указано, то локальныйкомпьютер),
NameSpace – пространство имен (если не указано, то пространство поумолчанию),
User – имя пользователя в формате Домен\УчетнаяЗапись (если неуказано, то текущий пользователь),
Password – пароль указанного пользователя,
Locate – код локализации (если не указано, то текущий язык),
Authority – имя домена, если он не указан в параметре User (еслине указано, то текущий домен),
SecurityFlags – время ожидания подключения,
WbemNamedValueSet – контекстная информация для провайдера, которыйиспользуется для запроса.
Подключение методом моникера
Моникер – это строка, задающая путь к классу WMI, экземпляркоторого должен быть создан. Моникер состоит из обязательного префикса «winmgmts:»,необязательных настроек безопасности, необязательного пути к требуемому классу:
Set mSWbemServices = GetObject («winmgmts:[{SecurityOptions}!]\\[Server]\[NameSpace]»)
Пример использования моникера:
' Подключение к пространству имен по умолчанию локальногокомпьютера
Set mSWbemServices0 = GetObject («winmgmts:»)
' Подключение к указанному пространству имен удаленного компьютера
' с указанием метода олицетворения
Set mSWbemServices1 = GetObject («winmgmts:{impersonationLevel=Impersonate}!» & _
«\\MyComputer\Root\CIMv2»)
' Подключение к указанному объекту локального компьютера
' с указанием метода олицетворения и привилегий
Set mSWbemServices2 = GetObject («winmgmts:» & _
«{impersonationLevel=Impersonate, (Shutdown, RemoteShutdown)}!» &_
«\\.\Root\CIMv2: Win32Process. Handle=4»).
Указанные выше методы работают в синхронном и полусинхронномрежиме, то есть программа или сценарий не выполняет следующую команду или запросдо тех пор, пока не получит ответ от текущего запущенного метода.
Асинхронное использование объектов репозитория
Аналогично синхронным методам WMI позволяет выполнять командыасинхронно, то есть не дожидаться результатов выполнения очередного запроса ипродолжать работу сценария или программы. Названия таких асинхронных методовимеют окончание «Async», а работа с ними почти не отличается от обычныхметодов, но должны быть использованы два обязательных параметра: ссылка наспециальный объект «слив событий» и контекстная информация объекта.
классбезопасность windows объект
1.5 Работа с объектами и коллекциями объектов, полученных врезультате запросов
Рассмотренные выше методы возвращают объекты и коллекции объектов,которые обладают своими методами и свойствами. Коллекция объектов обладаетнесколькими свойствами и методами, наиболее часто используемые из них – этоCount и Item.
Count – это свойство коллекции объекта, которое содержитколичество элементов коллекции.
Item(mObjectPath) – это метод, который возвращает один объектколлекции, соответствующий указанному пути.
Сам объект имеет свои методы и свойства, которые соответствуютклассу данного экземпляра. Но помимо классовых свойств и методов всем объектамприсущи универсальные, которые оканчиваются на символ подчеркивания, чтобыотличать их от классовых. Наиболее часто используемые универсальные методы – этоExecMethod_ и Put_.
ExecMethod_(mMethod, mWbemInParamsm, mFlags, mWbemNamedValueSet) –это метод для исполнения классового метода у используемого объекта.
Put_(mFlags, mWbemNamedValueSet) – это метод для записи измененныхсвойств объекта в репозиторий WMI и в реальный объект.
Пример использования метода Put_:
' Подключение к пространству имен
Set mSWbemServices = GetObject(«winmgmts:\\.\Root\CIMv2»)
' Получение объекта логического диска
Set mDisks = mSWbemServices. ExecQuery («SELECT * FROM Win32_LogicalDisk WHERE DeviceID ='C:'»)
' Перебор коллекции возвращенных объектов
For Each mDisk in mDisks
' Смена метки диска
oDisk. VolumeName = «System»
' Запись изменений
oDisk. Put_Next.

2. Описание реализации программы с использованием WMI
В программе на языке C#использовались классы ManagementObjectSearcher, ManagementObject, PropertyDataиз пространства имен System. Management.
ManagementObjectSearcher –класс извлекает коллекцию управляющих объектов в соответствии с заданным запросом.Этот класс является одной из наиболее часто используемых исходных точек входадля извлечения сведений об управлении. Например, его можно использовать дляперечисления всех дисководов, сетевых адаптеров, процессов и прочих управляющихобъектов в системе, либо для запроса всех работающих сетевых подключений,приостановленных служб и т.д. После создания экземпляр этого класса принимает вкачестве исходных данных запрос WMI, представленный объектом ObjectQuery илиего производными, и при необходимости объектом ManagementScope, представляющимпространство имен WMI, в котором должен быть выполнен запрос. Экземпляр можеттакже принять дополнительные параметры, которые содержатся в объектеEnumerationOptions. При вызове метода Get() для этого объектаManagementObjectSearcher выполняет данный запрос в заданной области ивозвращает коллекцию управляющих объектов, которые удовлетворяют запросу, вManagementObjectCollection.
ManagementObjectCollection –класс представляет различные коллекции управляющих объектов, извлекаемых спомощью WMI. Объекты в этой коллекции относятся к типам, производным отManagementBaseObject, в том числе ManagementObject и ManagementClass. Коллекцияможет представлять собой результат WMI-запроса, выполненного с помощьюManagementObjectSearcher, или же перечисление управляющих объектов заданноготипа, извлекаемых с помощью ManagementClass, представляющего этот тип. Крометого, это может быть коллекция управляющих объектов, привязанных заданнымспособом к определенному управляющему объекту. В этом случае коллекцияизвлекается с помощью такого метода, как GetRelated().Для прохождения поколлекции можно использовать ManagementObjectCollection. ManagementObjectEnumerator,а объекты, которые содержатся в коллекции можно, в свою очередь, просматривать,а также управлять ими при выполнении различных задач управления.
Проект реализован сиспользованием классов Windows Forms. Основной класс frmMain
Унаследован от класса Form ипредставляет собой окно.
Конструктор классапроизводит инициализацию и заносит в список элементы, необходимые для полученияинформации из источников WMI.
public frmMain()
{
InitializeComponent();
this.cmbxOption. Items.AddRange (new object[] {
«Win32_OperatingSystem»,
«Win32_PhysicalMemory»,
«Win32_PortConnector»,
«Win32_Processor»});
cmbxOption. SelectedItem= «Win32_Processor»;
}
Рассмотрим подробнее основную функцию InsertInfo, которая заносит необходимые данные в список в удобномдля пользователя формате.
 // функция котораязаносит необходимые данные в список в удобном для пользователя формате
private void InsertInfo(string Key, ref ListView lst, bool DontInsertNull)
{
 // очищаем список
lst. Items. Clear();
 // создаем экземпляр для обращения к wmif
ManagementObjectSearchersearcher = new ManagementObjectSearcher («select * from» + Key);
try
{
 // searcher. Get()возвращает коллекцию обьектовManagementObject
 // перебираем их в цикле
foreach (ManagementObjectshare in searcher. Get())
{
ListViewGroup grp;
try
{
 // имя группы элементов
grp = lst. Groups. Add(share[«Name»].ToString(), share [«Name»].ToString());
}
catch
{
grp = lst. Groups. Add(share. ToString(), share. ToString());
}
 // если нет элементоввыдаем сообщение об ошибке
if (share. Properties.Count
{
MessageBox. Show («NoInformation Available», «No Info», MessageBoxButtons.OK, MessageBoxIcon. Information);
return;
}
 // перебор непосредственно значений свойств
foreach (PropertyDataPC in share. Properties)
{
ListViewItem item = newListViewItem(grp);
if (lst. Items. Count% 2!=0)
 // Это просто длякрасоты – цвета элементов списка отличаются по цвету
item. BackColor = Color.White;
else
item. BackColor = Color.WhiteSmoke;
 // заносим текст в список
item. Text = PC. Name;
 // в зависимости отзначения свойства (тоесть его типа)
 // преобразуем его изаносим в ячейку списка
if (PC. Value!= null &&PC. Value. ToString()!= «»)
{
switch (PC. Value. GetType().ToString())
{
case «System. String[]»:
string[] str =(string[]) PC. Value;
string str2 = «»;
foreach (string st instr)
str2 += st + «»;
item. SubItems. Add(str2);
break;
case «System.UInt16 []»:
ushort[] shortData =(ushort[]) PC. Value;
string tstr2 = «»;
foreach (ushort st inshortData)
tstr2 += st. ToString()+ «»;
item. SubItems. Add(tstr2);
break;
default:
item. SubItems. Add(PC. Value. ToString());
break;
}
}
else
{
 // если нечеговставлять – выводим сообщение
if (! DontInsertNull)
item. SubItems. Add(«No Information available»);
else
continue;
}
 // завершающаяоперация – добавляем сформированный элемент в список
lst. Items. Add(item);
}
}
}
catch (Exception exp)
{
MessageBox. Show(«can't get data because of the followeing error \n» + exp. Message, «Error»,MessageBoxButtons.OK, MessageBoxIcon. Information).
}
}

3. Примервыполненияпрограммыируководствопользователя
Цель тестирования и отладки – обнаружение, локализация иустранение дефектов в программах и данных. Тестирование программы проходило накомпьютере, с установленной на него ОС Windows 7. Было проведено несколькозапусков программы. Ошибок и недоработок не обнаружено.
Примеры выполнения программы:
/>
Рисунок 3.1 – Просмотр информации о процессоре
/>
Рисунок 3.2 – Просмотр информации о портах компьютера

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

Выводы
Данный курсовой проект разработан для изучения современных средствразработки приложений для операционной системы Windows.
В процессе разработки компьютерной программы получены навыкипостановки задачи для решения ее программным способом, выбора и разработкисоответствующих алгоритмов, составления, отладки и тестирования программы врамках примененной технологии программирования, использования справочнойлитературы при изучении новых программных продуктов, закрепления практическихнавыков в оформлении документации на каждом этапе разработки.
В частности, были решены задачи корректной работы приложения,правильного выведения необходимой информации на экран.
Можно сказать, что поставленное при курсовом проектированиизадание было реализовано полностью.
Недостатками результирующего программного средства являются:
– недостаточная гармоничность и привлекательность графическойсоставляющей проекта;
– небольшие задержки при выполнении приложения на компьютерахс малым объемом оперативной памяти;
Данные недостатки могли бы быть исправлены при наличии болеешироких знаний и навыков решения задач подобного рода.

Список источников
1. ВиталийБочкарёв. Администрирование с помощью WMI, www.sysengineering.ru,26.04.2010.
2. Чарльз Петцольд, Программирование с использованием MicrosoftWindows Forms. – Питер: Русская Редакция, 2006. – 432 с.
3. Нейгел, Ивьен, Глинн, Уотсон, Скиннер C# 2008 и платформа .NET 3.5для профессионалов. – М.: WMPEC 2008. – 1392 c.


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

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.

Сейчас смотрят :

Реферат В.И. Вернадский о проблемах цивилизации
Реферат Брачность
Реферат В.И. Вернадский: Учение о ноосфере и современное глобальное мышление
Реферат Гражданская правосубъектность как элемент основа правового статуса
Реферат В. Нюхтилин Шпаргалки по философии
Реферат Нейросетевые методы распознавания изображений
Реферат В поисках глобального синтеза
Реферат Взаимосвязь философии и науки 2
Реферат Взгляды Платона на воспитание 2
Реферат Аналіз читацького ринку на прикладі форуму видавців 2010 у Львові
Реферат Взгляды на общество П.Сорокина
Реферат Юридическая природа ответственности, предусмотренная Налоговым кодексом РФ
Реферат Бухгалтерская отчетность в стратегическом анализе
Реферат Тема втраченого покоління у творчості Ремарка
Реферат В.И. Вернадский "Учение о ноосфере и современное глобальное мышление"