Member 12899279 Ответов: 4

Как запустить команду wmic из кода C++


мне нужно получить cpu processorID из кода c++

Что я уже пробовал:

в командной строке можно написать getprocessorid процессора при работе
как выполнить приведенную выше команду из кода c++?

4 Ответов

Рейтинг:
13

Member 12899279

Спасибо Верин за попытку помочь
Наконец-то я заработал его на c++

// WMI.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"


#include <array>
#include <iomanip>
#include <iostream>
#include <sstream>
#include <string>
#include<conio.h>
std::string GetProcessorId() {
	std::array<int, 4> cpuInfo;
	__cpuid(cpuInfo.data(), 1);
	std::ostringstream buffer;
	buffer
		<< std::uppercase << std::hex << std::setfill('0')
		<< std::setw(8) << cpuInfo.at(3)
		<< std::setw(8) << cpuInfo.at(0);
	return buffer.str();
}

int main(void) {
	std::cout << "Processor Serial number is:  ";
		std::cout<<GetProcessorId() << std::endl;
	_getch();
	return 0;
}


Рейтинг:
1

Shao Voon Wong

5! Я думаю, это именно то, что ОП должен вместо!

Рейтинг:
1

Dave Kreskowiak

Почему бы вам просто не выполнить запрос WMI напрямую, а не обращаться к внешнему инструменту для его выполнения?

В WMI в C++ примеры применения - Win32-приложений, Майкрософт документы[^]


Рейтинг:
0

Rick York

WMIC-это интерфейс командной строки для API инструментария управления Windows. Вы должны написать код C++ для прямого доступа к API WMI. Согласно с это в Microsoft Docs[^] он был эффективно осужден и этот API (MI)[^] следует использовать.

Обыск здесь [^] выводит изрядное количество примеров кода, которые можно использовать для WMI, но не так много для MI.

Кстати, я ничего не знал о WMI, пока не сделал несколько поисков. Вы должны работать над своими навыками поиска. Есть больше поисковых систем вокруг, чем просто google.