2016-05-05 22 views
5

Mam dysk twardy SATA i chcę wykryć za pomocą formularza okna C#. Chcę wyświetlić, że jest to dysk SATA lub IDE. Korzystam z następującego kodu, ale zawsze zwraca IDE, ale powinien zwracać SATA. Więc każdy może mi pomóc, gdzie się mylę.Jak sprawdzić dysk twardy to urządzenie Sata lub jest to urządzenie IDE przy użyciu 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

U można użyć funkcji [Drive Info] (https://msdn.microsoft.com/en-us/library/system.io.driveinfo.aspx) klasa. U można uzyskać informacje. –

Odpowiedz

0

Według klasy documentationWin32_DiskDrive, możliwe wartości dla InterfaceType są:

SCSI

HDC

IDE

USB

Dlatego nie zobaczysz SATA.

Jednak właściwość Caption może zawierać dodatkowe informacje o dysku. Możesz przeanalizować, czy zawiera on ATA lub SCSI.

+0

ok, ale która wartość dotyczy dysku SATA. I przywraca IDE, ale mam SATA Drive. –

+0

OK, nie ma na liście możliwych wartości, więc domyślnie jest to IDE? – Alex

+0

To pytanie może Ci pomóc http://stackoverflow.com/questions/5362199/how-to-check-if-hard-drive-is-eide-or-sata-z-papierami – Alex

0

sprawdzić właściwość caption z win32_DiskDrive dla ATA strun

Od MSDN Caption Dane Typ: string Typ dostępu: Odczyt tylko kwalifikatorów: MaxLen (64) DisplayName ("podpis") Krótki opis obiektu

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

Brother ma pewność, że każdy podpis urządzenia SATA zawiera ciąg "ATA"? –

Powiązane problemy