2016-05-05 9 views
5

私はSATAハードディスクを持っており、C#のWindowsフォームで検出したいと思います。私はそれがSATAまたはIDEドライブであることを表示したい。私は次のコードを使用していますが、それは常にIDEを返しますが、そのSATAを返す必要があります。だから誰でも私が間違っている場所に私を助けることができます。ハードディスクを確認する方法はSataデバイスかCを使用しているIDEデバイスです

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は、[ドライブ情報(https://msdn.microsoft.com/en-us/library/system.io.driveinfo.aspx)クラスを使用することができます。 Uは情報を得ることができます。 –

答えて

0

Win32_DiskDriveクラスdocumentationによると、InterfaceTypeのための可能な値は次のとおりです。

SCSI

HDC

IDE

USB

したがって、SATAは表示されません。

ただし、Captionプロパティには、ドライブに関する追加情報が含まれている場合があります。それを解析して、ATAまたはSCSIが含まれているかどうかを調べることができます。

+0

okですが、SATAドライブ用の値です。そしてIDEを後退させますが、私はSATA Driveを持っています。 –

+0

これは可能な値のリストにないため、デフォルトはIDEですか? – Alex

+0

この質問はあなたに役立つことがありますhttp://stackoverflow.com/questions/5362199/how-to-check-if-hard-drive-is-eide-or-sata-with-powershell – Alex

0

チェック文字列ATA

MSDNから Caption データ型のためwin32_DiskDrivecaptionプロパティ:文字列 アクセスの種類:読み取り専用 修飾子を:のMaxLen(64)、表示名( "キャプション") オブジェクトの簡単な説明

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

BrotherはすべてのSATAデバイスのキャプションに "ATA"文字列が含まれていることを確認していますか? –

関連する問題