==== hdd_temperature.cpp ====
#using <mscorlib.dll>
#using <System.dll>
#using <System.Management.dll>
using namespace System;
#include "hdd_temperature.h"
int main(array<System::String ^> ^args){
Console::WriteLine("HDD Temperature using WMI/MSStorageDriver_ATAPISmartData\n");
try {
System::Management::ManagementObjectSearcher^ searcher =
gcnew System::Management::ManagementObjectSearcher(
"root\\WMI",
"SELECT * FROM MSStorageDriver_ATAPISmartData");
System::Management::ManagementObjectCollection^ coll = searcher->Get();
for each (System::Management::ManagementObject^ obj in coll){
array<Byte>^ arr = static_cast<array<Byte>^>(obj["VendorSpecific"]);
Console::WriteLine("Temperature = {0}\n",arr[115]);
}
} catch (System::Management::ManagementException^ ex){
Console::WriteLine(ex->Message+"\n"+ex->StackTrace);
}
return EXIT_SUCCESS;
}
==== hdd_temperature.h ====
#pragma once
#ifndef EXIT_FAILURE
#define EXIT_FAILURE 1
#endif
#ifndef EXIT_SUCCESS
#define EXIT_SUCCESS 0
#endif
==== makefile ====
TARGET=hdd_temperature
all: $(TARGET).exe
HEADERS=$(TARGET).h
OBJS=$(TARGET).obj
$(TARGET).obj: $(TARGET).cpp $(HEADERS)
$(TARGET).exe: $(OBJS)
link $(OBJS) /out:$@
.cpp.obj:
cl -c -Wall -Od -clr:pure $< $(AI_PATH)
@echo