Курсовая работа: Программа, выдающая полную информацию о наличии портов, частоте процессора, оперативной памяти, системного каталога, каталога Windows
класс безопасность 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();