February 1st, 2010, 08:10 PM
How to retrieve hard drive temperature?
I am looking for a way to retrieve the temperature of hard drives in VB Express 2008. I have found posts at a few different places that accomplish this with the following:
This function retrieves the temperature for all the hard drives in my system (excluding USB), two internal and one external esata drive. There are two problems, tough:
Public Function GetDriveTemp() As Integer
Dim searcher As New ManagementObjectSearcher("root\WMI", "SELECT * FROM MSStorageDriver_ATAPISmartData")
For Each queryObj As ManagementObject In searcher.Get()
Dim arrVendorSpecific As Byte() = queryObj("VendorSpecific")
GetDriveTemp = arrVendorSpecific(115
Catch ex As ManagementException
1. I want to know the drive letter and maybe the drive label that the retrieved temperature corresponds to. I'm assuming that the * in the query, "SELECT * FROM MSStorageDriver_ATAPISmartData", can be changed to specify a particular drive rather than all drives, but I don't know how retrieve a list of all the drives in my system or how to write the query based on those results.
2. If I call the funciton from a some click event like for a label or button, there are no problems and the return value seems valid. But when I call the function from a Timer_Tick event, the mouse cursor is the busy cursor as long as the mouse is within the form, the form doesn't receive any click events, and it cannot be closed.
I know what I'm trying to do can be done because there are a few utilities that provide this information. So, does anyone have any ideas?
Last edited by HanneSThEGreaT; February 2nd, 2010 at 08:19 AM.
Tags for this Thread
Click Here to Expand Forum to Full Width
This is a CodeGuru survey question.