S.M.A.R.T.  Self-Monitoring, Analysis and Reporting Technology

 

 

 

 



==== 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