Я работаю с программированием на C ++, я использую пример для понимания основного вопроса.
Предположим, мы хотим получить текущее имя пользователя в операционной системе Windows, мы можем использовать следующий код:
#include <windows.h>
#include <Lmcons.h>
char username[UNLEN+1];
DWORD username_len = UNLEN+1;
GetUserName(username, &username_len);
также мы можем использовать wmi, следуя инструкциям Вот и использовать Win32_ComputerSystem.UserName .
Итак, я надеюсь, что вы полностью поняли, что отличается между WiM и использованием API или любым другим способом?
спасибо за ваш ответ.
недостаток :
преимущество :
Это наиболее важные вопросы для использования wmi.
Инструментарий управления Windows (WMI) — это набор спецификаций Microsoft для консолидации управления устройствами и приложениями в сети из компьютерных систем Windows.
Это реализация Microsoft системы управления предприятием через Интернет.
WMI — Сервисы установлены в ОС Windows, но сервис может быть отключен. Поэтому, если пользователь отключил сервис, вы не получите никакой информации о системе. Это просто для целей отчетности.
Принимая во внимание, что API — это способы, с помощью которых Microsoft предоставляет доступ к информации локальному Приложению, и некоторые способы, которыми вы также можете манипулировать предоставленной информацией.
WMI основан на запросах и работает очень медленно, так как API намного быстрее.
Пример: — если вы хотите проверить некоторые спецификации системы в вашем приложении перед запуском, вам лучше использовать API. Это заставит вас запускать приложение быстрее.
WMI имеет преимущество перед API-вызовом. Информация WMI более богата и легко читаема, поэтому для получения такого же результата мы должны сделать несколько API-вызовов.
API GetUserName это просто вызов функции, экспортируемой Advapi32.dll который принадлежит базовым функциям ядра.
С помощью Win32_ComputerSystem class вы собираетесь запросить Инструментарий управления Windows которая представляет собой сложную и всеобъемлющую инфраструктуру служб, которая решает большинство административных задач в Windows.
Отправка запроса в WMI требует гораздо больше ресурсов и времени выполнения, поэтому, если ваша цель просто получить имя пользователя, Я предлагаю вам положиться на API GetUserName.