CD-ROMドライブがCD-Rタイプなのか、DVD-ROMドライブなのかといった情報を
取得しようと思っていて、いろいろと調べてみますとAPI関数の
GetDriveTypeを使用すると、ドライブの種類を取得できることがわかりました。
そこで試してみたのですが、CD-ROMドライブについてはそれがDVD-ROMで
あってもCD-Rドライブであってもそれを判定することができません。
単にCD-ROMドライブだということがわかるだけです。
それがCD-RかDVD-ROMかという情報はどのように得ればいいのでしょうか。
教えて下さい。
ASPIを利用すればできるかもしれません。
# ASPIはすべての環境に入っているとは限りません。
DelphianWorldに、WN32ASPI.DLLのラッパーコンポーネントがあります。
http://home1.infonia.ne.jp/~delphian/delphi/
使えるかどうかわかりませんが、参考に。
にしのさん情報ありがとうございます。
しかしASPIはwindows95、98はともかく、NT、2000、XPは
入っていないので、ちょっと環境に依存する度合いが強いので
難しいです。
WMIがDelphiで利用できれば判別できるのですが、この場合でもOSは限られますね。
Win95〜XPすべて同じように判別することは無理だと思います。
DeviceIoControlでもできるかもしれませんが、ちょっとわかりません。
そうですね。
せめてXP,2000で使える方法があればうれしいのですが。
難しいんですね...。
2000とXPで共通したものに、SPTIというものがあります。
これを使えばたぶんCD-ROM/CD-R/DVDなどの判別ができると思います。
あまり詳しくないのですが、CD ManipulatorというライティングソフトでSPTIを使用しており、VC.netですがソースも公開されています。
参考にしてみてはどうでしょう。
SPTIはDDKが必要になるものの、使える可能性は大だと思って
いろいろと調べてみました。
Cのソースも(しっかりとは読めませんが)、どんなことをやっているか
追ってみましたが、ドライブの判別にはAPIのGetdrivetypeを使っていたので
SPTIではそういったことはできないのか疑問です。
あくまでデバイスの制御・操作系のインターフェイスなんでしょうか。
しかしデバイス名も取得できますし、DVDかCDを判別できる手段がありそうな
においがぷんぷんするので、DDKのドキュメントを調べていけば分かるかと思います。ちょっと私のレベルを超えてしまっている気もしますが、時間を見てSPTIについてもう少し調べてみます。MSDNも当たってみると、もっと簡単にできるかもしれないし..。
にしのさん、何度も情報ありがとうございます。
ツイート | ![]() |