DVDドライブを判定するには?


しゅん  2003-02-05 03:48:45  No: 2810

CD-ROMドライブがCD-Rタイプなのか、DVD-ROMドライブなのかといった情報を
取得しようと思っていて、いろいろと調べてみますとAPI関数の
GetDriveTypeを使用すると、ドライブの種類を取得できることがわかりました。
そこで試してみたのですが、CD-ROMドライブについてはそれがDVD-ROMで
あってもCD-Rドライブであってもそれを判定することができません。
単にCD-ROMドライブだということがわかるだけです。
それがCD-RかDVD-ROMかという情報はどのように得ればいいのでしょうか。
教えて下さい。


にしの  2003-02-07 03:04:06  No: 2811

ASPIを利用すればできるかもしれません。
# ASPIはすべての環境に入っているとは限りません。

DelphianWorldに、WN32ASPI.DLLのラッパーコンポーネントがあります。
http://home1.infonia.ne.jp/~delphian/delphi/
使えるかどうかわかりませんが、参考に。


しゅん  2003-02-07 06:10:38  No: 2812

にしのさん情報ありがとうございます。
しかしASPIはwindows95、98はともかく、NT、2000、XPは
入っていないので、ちょっと環境に依存する度合いが強いので
難しいです。


にしの  2003-02-08 04:28:16  No: 2813

WMIがDelphiで利用できれば判別できるのですが、この場合でもOSは限られますね。
Win95〜XPすべて同じように判別することは無理だと思います。
DeviceIoControlでもできるかもしれませんが、ちょっとわかりません。


しゅん  2003-02-08 08:06:46  No: 2814

そうですね。
せめてXP,2000で使える方法があればうれしいのですが。
難しいんですね...。


にしの  2003-02-08 09:14:17  No: 2815

2000とXPで共通したものに、SPTIというものがあります。
これを使えばたぶんCD-ROM/CD-R/DVDなどの判別ができると思います。
あまり詳しくないのですが、CD ManipulatorというライティングソフトでSPTIを使用しており、VC.netですがソースも公開されています。
参考にしてみてはどうでしょう。


しゅん  2003-02-09 10:47:39  No: 2816

SPTIはDDKが必要になるものの、使える可能性は大だと思って
いろいろと調べてみました。
Cのソースも(しっかりとは読めませんが)、どんなことをやっているか
追ってみましたが、ドライブの判別にはAPIのGetdrivetypeを使っていたので
SPTIではそういったことはできないのか疑問です。
あくまでデバイスの制御・操作系のインターフェイスなんでしょうか。
しかしデバイス名も取得できますし、DVDかCDを判別できる手段がありそうな
においがぷんぷんするので、DDKのドキュメントを調べていけば分かるかと思います。ちょっと私のレベルを超えてしまっている気もしますが、時間を見てSPTIについてもう少し調べてみます。MSDNも当たってみると、もっと簡単にできるかもしれないし..。
にしのさん、何度も情報ありがとうございます。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加