что отличается между wmi и API - PullRequest
0 голосов
/ 24 сентября 2018

Я работаю с программированием на 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 .

так что, я надеюсь, вы полностью поняли, В чем разница между wmi и использованием api или любым другим способом?

спасибо за ваш ответ.

Ответы [ 4 ]

0 голосов
/ 24 сентября 2018

недостаток :

  • Скорость (в основном недостаток)
  • если пользователь отключает службу wmi, wmi не работает.

преимущество :

  • Обертывание собственного API
  • более богатые данные, если вы используете wmi, вы можете получить расширенные данные
  • стандартизированныевсе «сущности» представлены стандартным образом

Это наиболее важные вопросы для использования wmi.

0 голосов
/ 24 сентября 2018

WMI основан на запросах и работает очень медленно, так как API намного быстрее.Пример: - если вы хотите проверить некоторые спецификации системы в своем приложении перед запуском, вам лучше использовать API.Это ускорит запуск вашего приложения.

WMI имеет преимущество перед вызовом API. Информация WMI более обширная и легко читаемая, где для получения такого же результата необходимо выполнить несколько вызовов API.

0 голосов
/ 24 сентября 2018

API GetUserName - это просто вызов функции, экспортируемой Advapi32.dll , которая принадлежит базовым функциям ядра.

Используя Win32_ComputerSystem class , вы собираетесь запросить Инструментарий управления Windows , который представляет собой сложный и всеобъемлющий инфраструктурный сервис, который решает большинство административных задач в Windows.

Отправка запроса в WMI требует гораздо больше ресурсов и времени выполнения, поэтому, если ваша цель просто получить имя пользователя , я предлагаю вам положиться на GetUserName API .

0 голосов
/ 24 сентября 2018

Инструментарий управления Windows (WMI) - это набор спецификаций Microsoft для консолидации управления устройствами и приложениями в сети из компьютерных систем Windows.

Это реализация Microsoft управления предприятием на основе веб-технологий.WMI - Сервисы установлены в ОС Windows, но сервис может быть отключен.Так что если пользователь отключил сервис, вы не получите никакой информации о системе.Это просто для целей отчетности.

Принимая во внимание, что API - это способы, посредством которых Microsoft предоставляет доступ к информации локальному Приложению, и некоторые способы, которыми вы также можете манипулировать предоставленной информацией.

...