क्या एसएमएआरआर एपीआई या उसके जैसा कुछ भी हैरडीस्क तापमान देखना संभव है?हार्डडिस्क तापमान कैसे पढ़ा जाए?
मैं सिर्फ अस्थायी चाहते हैं, सी # में और कुछ नहीं
क्या एसएमएआरआर एपीआई या उसके जैसा कुछ भी हैरडीस्क तापमान देखना संभव है?हार्डडिस्क तापमान कैसे पढ़ा जाए?
मैं सिर्फ अस्थायी चाहते हैं, सी # में और कुछ नहीं
यहाँ इस article से कोड स्निपेट आशा है कि यह मदद करता है
//S.M.A.R.T. Temperature attritube
const byte TEMPERATURE_ATTRIBUTE = 194;
public List GetDriveTemp()
{
List retval = new List();
try
{
ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\WMI", "SELECT * FROM MSStorageDriver_ATAPISmartData");
//loop through all the hard disks
foreach (ManagementObject queryObj in searcher.Get())
{
byte[] arrVendorSpecific = (byte[])queryObj.GetPropertyValue("VendorSpecific");
//Find the temperature attribute
int tempIndex = Array.IndexOf(arrVendorSpecific, TEMPERATURE_ATTRIBUTE);
retval.Add(arrVendorSpecific[tempIndex + 5]);
}
}
catch (ManagementException err)
{
Console.WriteLine("An error occurred while querying for WMI data: " + err.Message);
}
return retval;
}
यह tempIndex + 5 क्यों है, और मैंने इसके बारे में पहले से ही एक प्रश्न पोस्ट किया है लेकिन करें आप जानते हैं कि विशेषता 1 9 3 (लोड/अनलोड चक्र गणना) से डेटा कैसे प्राप्त करें –
'सूची' को 'सूची
VMI और MSStorageDriver_ATAPISmartData
का उपयोग VendorSpecific
बाइट सरणी और 115 बाइट संख्या है प्राप्त करने के लिए है तापमान। 115 क्यों? अधिक here।
कोड आंशिक रूप से VMI Code Creator
ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\WMI",
"SELECT * FROM MSStorageDriver_ATAPISmartData");
foreach (ManagementObject queryObj in searcher.Get())
{
if (queryObj["VendorSpecific"] != null)
{
byte[] arrVendorSpecific = (byte[])(queryObj["VendorSpecific"]);
string temp = arrVendorSpecific[115].ToString();
}
}
साथ उत्पन्न और जहां समस्या है? – Burimi
कोई समस्या नहीं है .. मुझे बस एक स्मार्ट एपीआई खोजने की जरूरत है - Ive google'd लेकिन कोई भी नहीं मिला .. – Mathias