Bonjour,
Voici un simple code pouvant normalement permettre de récupérer la température du proc:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#define _WIN32_DCOM
#include <iostream>
using namespace std;
#include <comdef.h>
#include <Wbemidl.h>

# pragma comment(lib, "wbemuuid.lib")

int main(void) {

	CoInitialize(NULL);
	if (CoInitializeSecurity(NULL, -1, NULL, NULL, RPC_C_AUTHN_LEVEL_PKT,
	RPC_C_IMP_LEVEL_IMPERSONATE, NULL, EOAC_NONE, 0) != S_OK)
		return 1;

	IWbemLocator* pIWbemLocator = NULL;
	IWbemServices* pWbemServices = NULL;
	IEnumWbemClassObject* pEnumObject = NULL;

	BSTR bstrNamespace = (L"root\\WMI");

	if (CoCreateInstance (
	CLSID_WbemAdministrativeLocator,
	NULL ,
	CLSCTX_INPROC_SERVER | CLSCTX_LOCAL_SERVER ,
	IID_IUnknown ,
	( void ** ) & pIWbemLocator) != S_OK)
	return 1;

	if (pIWbemLocator->ConnectServer(bstrNamespace, NULL, NULL, NULL, 0,
	NULL, NULL,&pWbemServices) != S_OK)
	return 1;

	HRESULT hRes;
	BSTR strQuery = (L"Select * from MSAcpi_ThermalZoneTemperature");
	BSTR strQL = (L"WQL");
	hRes = pWbemServices->ExecQuery(strQL, strQuery,
	WBEM_FLAG_RETURN_IMMEDIATELY, NULL, &pEnumObject);
	if (hRes != S_OK)
	{
		cout << "Could not execute Query";
		return 1;
	}

	hRes = pEnumObject->Reset();
	if (hRes != S_OK)
	{
		cout << "Could not Enumerate (1)";
		return 1;
	}

	ULONG uCount = 1, uReturned;
	IWbemClassObject* pClassObject = NULL;
	hRes = pEnumObject->Next(WBEM_INFINITE,uCount, &pClassObject, &uReturned);
	if(hRes != S_OK)
	{
		cout << "Could not Enumerate (2): ";
		return 1;
	}

	VARIANT v;
	BSTR strClassProp = SysAllocString(L"CurrentTemperature");
	hRes = pClassObject->Get(strClassProp, 0, &v, 0, 0);
	if (hRes != S_OK)
	{
		cout << "Could not Get Value";
		return 1;
	}

	SysFreeString(strClassProp);
	_bstr_t bstrPath = &v; //Just to convert BSTR to ANSI
	char* strPath=(char*)bstrPath;

	if (SUCCEEDED(hRes))
		cout << strPath;
	else
		cout << "Error in getting object";

	VariantClear(&v);
	pIWbemLocator->Release();
	pWbemServices->Release();
	pEnumObject->Release();
	pClassObject->Release();
	CoUninitialize();
	

	return 0;
}
et voici toujours l'erreur à la sortie:
cout << "Could not Enumerate (2)"
Je ne comprends pas, j'ai beau cherché.
Mon PC peut être pas compatible?