2016-05-05 7 views
5

का उपयोग कर मेरे पास SATA हार्ड डिस्क है, और मैं सी # विंडोज़ फॉर्म से पता लगाना चाहता हूं। मैं प्रदर्शित करना चाहता हूं कि यह सैटा या आईडीई ड्राइव है। मैं निम्नलिखित कोड का उपयोग कर रहा हूं लेकिन यह हमेशा आईडीई लौटाता है लेकिन इसे सैटा वापस करना चाहिए। तो कोई भी मेरी मदद कर सकता है जहां मैं गलत हूं।हार्ड डिस्क की जांच कैसे करें Sata डिवाइस या यह आईडीई डिवाइस है C#

WqlObjectQuery q = new WqlObjectQuery("SELECT * FROM Win32_DiskDrive"); 
ManagementObjectSearcher res = new ManagementObjectSearcher(q); 

foreach (ManagementObject o in res.Get()) 
{ 
    string lblInterface= o["InterfaceType"].ToString(); 
} 
+0

यू उपयोग कर सकते हैं [ड्राइव जानकारी] (https://msdn.microsoft.com/en-us/library/system.io.driveinfo.aspx) वर्ग के संक्षिप्त विवरण। यू जानकारी प्राप्त कर सकते हैं। –

उत्तर

0

Win32_DiskDrive वर्ग documentation के अनुसार, InterfaceType के लिए संभावित मान हैं:

SCSI

HDC

आईडीई

यूएसबी

इसलिए, आप SATA नहीं देख पाएंगे।

हालांकि, Caption संपत्ति में ड्राइव के बारे में अतिरिक्त जानकारी हो सकती है। आप यह पता लगाने के लिए पार्स कर सकते हैं कि इसमें एटीए या एससीएसआई है या नहीं।

+0

ठीक है, लेकिन SATA ड्राइव के लिए कौन सा मान है। और यह आईडीई को पीछे छोड़ देता है, लेकिन मेरे पास सैटा ड्राइव है। –

+0

ठीक है, यह संभावित मानों की सूची में नहीं है, इस प्रकार आईडीई के लिए डिफ़ॉल्ट है? – Alex

+0

यह प्रश्न आपको मदद कर सकता है http://stackoverflow.com/questions/5362199/how-to-check-if-hard-drive-is-eide-or-sata-with-powershell – Alex

0

चेक स्ट्रिंग एटीए

MSDN से Caption डेटा प्रकार के लिए win32_DiskDrive की caption संपत्ति: स्ट्रिंग पहुंच प्रकार: केवल पढ़ने के लिए क्वालिफायर: MaxLen (64), DisplayName ("कैप्शन") वस्तु

foreach (ManagementObject o in res.Get()) 
{ 
    string sCaption = o["Caption"].ToString(); 
    if(sCaption.Contains("ATA")) 
    { 
      Console.WriteLine("SATA Drive"); 
      break; 
    } 
} 
+0

भाई यकीन है कि प्रत्येक सैटा डिवाइस के कैप्शन में "एटीए" स्ट्रिंग है? –

संबंधित मुद्दे