• ベストアンサー

HDDがIDEかsataかを検出する方法

WindowsのソフトでPCに接続されてるHDDがIDEかSATA(AHCI)かを検出したいのでが、何か良い方法ありまえんでしょうか? 適用されているHDDのドライバがの名前さえ分かればそれを基に判断できると思っていますすがどうでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

WMIを使えばできます。 たまたまサンプルを見つけたサイトがC#のサイトだったので、 C#で申し訳ありませんが、 using System; using System.Collections.Generic; using System.Text; using System.Management; namespace disk { class Program { static void Main(string[] args) { try { ManagementObjectSearcher searcher = new ManagementObjectSearcher("root\\CIMV2", "SELECT * FROM Win32_DiskDrive"); foreach (ManagementObject queryObj in searcher.Get()) { Console.WriteLine("[{0}] {1}", queryObj["InterfaceType"], queryObj["Model"]); } } catch (ManagementException e) { Console.WriteLine( "An error occurred while querying for WMI data: " + e.Message); } } } } Visual C# Express Editionで実行可能です。 System.Managementの参照を追加してください。

jimihenn
質問者

お礼

おお、すばらしい! まさにこういうのを期待しておりました。 ありがとうございます。 ちなみにこんなサイトをどうやって見つけたんでしょうか? 何かコツがあるんでしょうか?

その他の回答 (2)

回答No.3

No.2のlaughsheepです。 本サンプルはCodeZineで見つけました。 プログラムサンプルを見つけるときは以下のページを見ることが多いです。 CodeZine http://codezine.jp/ The Code Project http://www.codeproject.com/ Code Guru http://www.codeguru.com/ Google Code Search http://www.google.com/codesearch あとは、MSDNやGoogleとか、オープンソースソフトウェアのソースをみてみたり。 WMI関連のコードを自動生成するならこのソフトが便利。 WMI Code Creator http://www.microsoft.com/downloads/details.aspx?FamilyID=2cc30a64-ea15-4661-8da4-55bbc145c30e&displaylang=en

  • alpha123
  • ベストアンサー率35% (1721/4875)
回答No.1

デバイスマネージャでHDD見れば型番わかります。 その型番名で検索すれば販売ページやメーカーページに行き当たります(例えばGoogle検索)。 HDD本来の接続方法がIDEかSATA接続かはわかりそうです。(マザーと直につなぐとき、ね) 実際のパソコンには(メーカー製だとそのまま接続多いが)IDE>SATA変換もSATA>IDE変換接続もあります。 HDD交換(追加)したいという需要なら、どうせパソコン分解します。中のHDDを目で見れば確実です。 外付け機器ではUSB接続の中身(IEEE1394接続の中身なども)発売時期によってばらばらです。 いまではCD/DVDドライブもSATA接続は多いが、SATA接続でも単に変換ケーブルでIDE(ATAPI)ドライブつなぐときとSATA仕様のDVDドライブ使うことがあるでしょう。変換ケーブルはマザーボードに標準同梱です。

jimihenn
質問者

お礼

どうもありがとうございます。 ただ私の説明の仕方に問題がありました。 やりたい事は自分の作るプログラムでHDDがIDEモードかAHCIモードかを検出することです。その方法がどうも見つかりません。 もしご存知でしたらお願いします。

関連するQ&A