Console.WriteLine (mo["Name"]);
Результатом этого запроса будет не все множество дисковых накопителей, а подмножество, в которое попадут лишь те диски, размер которых более 40 Гб. Используя подобную технику, мы можем получать интересующую нас информацию о любом множестве объектов вычислительной системы.
С помощью свойств и методов класса ManagementEventWatcher мы можем не только получать информацию о системе, но и управлять ею, реагируя на интересующие нас события.
Мы собираемся создать решение, состоящее из нескольких проектов. Проект типа WindowsFormsControlLibrary (это — DLL), позволит управлять параметрами системы, оперируя объектами классов из пространства имен System.Management. Параллельно, мы разработаем проект типа Windows Application (это — EXE), который будет пользоваться возможностями классов, экспортируемых DLL и предоставит пользователю удобный интерфейс для осуществления мониторинга и управления системой. Здесь нам придется разобраться в некоторых технологических деталях взаимодействия с элементами управления формы: TreeView, ListView и др.
Приложение будет иметь вид, показанный на рис. 2. Расщепленная форма главного окна содержит TabControl, вкладки (TabPages) которого отображают вложенные элементы управления: WMIControl, FileSystemControl, SysInfoControl, ServicesControl и ProcessesControl. Перечисленные элементы — это классы, которые вам предстоит разработать и поместить в проект типа WindowsFormsControlLibrary (DLL). Создайте общий каркас всего решения (solution), для этого:
¨ В меню File4New выберите командуProject. В окне диалога New Project, в окне Project Type раскройте узел дерева под именем Visual C#. В окне Templates выберите стартовый шаблон вида: Windows Forms Application.
¨ Установите флаг Create directory for solution. В окне Solution Name введите имя решения MyWMI.
¨ В окне Name введите имя проекта Client. В окне Location задайте местоположение новой папки с файлами решения (solution). Напоминаю, что при работе в классе вы должны пользоваться папкой D:\Users (иначе гарантированно будут проблемы). Нажмите OK.
Рис.2. Вид первой вкладки главного окна приложения.
Рис.3. Вид второй вкладки главного окна приложения.
Добавьте в рабочее пространство (solution) еще один проект типа WindowsFormsControlLibrary.
¨ В контекстном меню текущего решения MyWMI (будьте внимательны: решения, а не проекта) выберите команду Add4New Project.
¨ В окне диалога выберите тип проекта Visual C# Projects4WindowsFormsControlLibrary, задайте имя Library и убедитесь, что папка проекта попадает внутрь папки решения.
¨ Заметьте, что активным является первый проект (Client). С помощью меню правой кнопки и команды Set as SturtUp Project это можно изменить и сделать активным другой проект.
Думаю, что в решение следует добавить еще один проект консольного типа, назвать его TestWMI и отработать с его помощью приемы работы с классами WMI. Для этого советую использовать фрагменты кода, приведенные ранее в этом документе. Если вы это уже проделали в рамках другого проекта, то советую принести тот проект в папку нашего решения и подключить к нему. Вспомогательный учебный проект TestWMI позволяет проверять созревающие идеи, опробовать фрагменты кода и т. д.
Вид этого элемента управления приведен на рис. 4. В левой панели расщепленного окна будет отображено дерево пространств имен, в следующей панели — дерево классов WMI, размещенных в выбранном пространстве имен, справа вы видите три списка (свойств, методов и описателей выбранного класса). Справа внизу вы видите текстовые поля, в которых будут отображены описания, точнее, значения свойств Description для выбранного класса и выбранного элемента в одном из трех списков. Компонент WMIControl носит вспомогательную роль. Его можно использовать, как справочную систему по классам WMI. С его помощью вы сможете найти все свойства, методы и описатели классов. Более того, вы можете определить, имеются ли объекты (ManagementObject) определенного класса в вашей системе в данный момент. Если да, то вы сможете узнать значение выбранного вами свойства для все объектов выбранного класса. Этот вывод будет произведен в отдельную форму со списком типа ListView.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.