Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.
Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.
Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.
Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.
Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.
Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.
При чтении этого документа установите для стиля Обычный один из следующих шрифтов: Palatino Linotype, Franklin Gothic Book, Segoe UI или Sylfaen.
С точки зрения пользователя Windows Management Instrumentation (WMI) — это инфраструктура управления операционной системой, использующая стандартный объектно-ориентированный интерфейс. С точки зрения программиста WMI — это семейство классов и API-функций, позволяющее получать общую информацию о системе и управлять ею. API-функции WMI позволяют разрабатывать системные утилиты (system tools), которые помогают администратору производить мониторинг компьютерной системы, организовывать работу в ней и управлять критически важными параметрами в режиме реального времени.
Visual Studio .NET и Microsoft .NET Framework SDK предоставляют множество API-функций и классов, которое значительно упрощает разработку системных утилит, а также позволяет управлять распределенными приложениями. При управлении ими WMI использует технологию DCOM (Distributed Component Object Model) со специализированным маршалингом параметров. Это делается для повышения эффективности управления.
С помощью WMI ваше приложение может определить тип операционной системы (включая номер service pack), количество процессоров, запущенные сервисы, открытые сетевые соединения, каким доменам доверяет (in trust relationship) локальный домен host-компьютера. Вы можете запустить или остановить процесс или сервис, управлять доступностью дисков, рекурсивно выгрузить все Web-приложения из произвольной виртуальной директории IIS (Internet Information Services). Все это согласуется с правами клиента WMI.
WMI возбуждает множество событий, подписавшись на которые, вы можете эффективно реагировать на них и обрабатывать возникающие ситуации. Например, можно создать событие (и реакцию на него), заключающееся в том, что количество свободного места на диске упало ниже заданного уровня, или когда процесс пытается захватить больше памяти, чем предусмотрено его правами.
WMI поддерживает специальный язык запросов — Windows Management Instrumentation Query Language (WQL), который является подмножеством языка SQL (Structured Query Language). Например, запрос: "Выдать список процессов, потребляющих более 10 Mb памяти, выглядит так:
Select * from Win32_Process where WorkingSetSize >= 10485760
WMI предоставляет клиентам набор классических COM-интерфейсов и вы можете работать с ними по правилам COM, заручившись поддержкой пространства имен .NET COM Interop. Но значительно более удобно работать без помощи технологии COM, так как .NET Framework имеет специальное пространство имен — System.Management, объекты которого предоставляют интуитивно-ясный интерфейс и позволяют работать с многочисленными данными и событиями.
Центральным классом в этом пространстве именявляется ManagementObject. Он инкапсулирует общую функциональность данных произвольного характера. Например, мы хотим узнать какой размер в гигабайтах имеет наш диск (в магазине он продавался как диск размером в 360 Гб). Для этого достаточно выполнить следующий фрагмент.
ManagementObject mo = new ManagementObject("Win32_LogicalDisk.DeviceID='C:'");
mo.Get();
Console.WriteLine("Logical Disk Size = {0:f1} Gb", (ulong)mo["Size"] / (1024.0 * 1024 * 1024));
Вы можете поместить этот фрагмент кода в функцию Main любого консольного проекта C#, но для того, чтобы он заработал, недостаточно добавить директиву:
using System.Management;
Пространство имен System.Management будет доступным лишь после того, как вы добавите ссылку на System.Management.dll. Для этого выберите команду Add Reference в контекстном меню узла Reference, который расположен внутри дерева компонентов текущего проекта (см. окно Solution Explorer), найдите DLL и добавьте ссылку. После этого фрагмент должен работать. В моем случае он вывел в такой результат:
Logical Disk Size = 341,8 Gb
Другим важным классом пространства имен Management является класс ManagementObjectSearcher. Он позволяет получить коллекцию данных с помощью запроса на языке WQL. Например, для того, чтобы получить список всех сервисов, которые стартовали в данной системе, можно использовать такой запрос:
ManagementObjectSearcher searcher = new ManagementObjectSearcher(
"Select * from Win32_Service where Started = TRUE");
foreach (ManagementObject mo in searcher.Get())
Console.WriteLine ("Service: {0}, State: {1} ", mo["Caption"], mo["State"]);
Ответом системы будет список, строки которого имеют примерно такой вид:
Service: DHCP-клиент, State: Running
Service: Windows Presentation Foundation Font Cache 4.0.0.0, State: Stopped
Следующий фрагмент обходится без помощи класса ManagementObjectSearcher. Он пользуется услугами другого класса пространства имен Management — класса ManagementClass. Этот класс, производный от ManagementObject, позволяет создать, или скорее выбрать так называемый класс WMI.
Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.
Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.
Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.
Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.
Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.
Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.