ドライブ内メディアの種類を識別するには?


druekeberger  2006-05-24 02:26:35  No: 131551

あるドライブに入っているメディアがCD-R、DVD-RAMなど、
どのメディアであるかを識別する方法を教えてください。
国内、海外問わずに探しているのですが、それらしい情報にたどり着けません。
WMIのWin32_PhysicalMediaでいけるかも?と思って実験コードを
書いてみても期待する結果にはなりませんでした(実験コードがまずいだけかも)
環境はWinXP SP1、VB6でサードパーティ製品を使わない環境です。

VB6以外でも情報があれば助かります。
よろしくお願いいたします。


犬ひろし  2006-05-24 04:11:30  No: 131552

WMI の CDROMDrive でどうでしょう?

MediaTypeを指定すれば、いけると思います。


druekeberger  2006-05-24 05:34:23  No: 131553

回答ありがとうございます。Win32_CDROMDriveを試してみました。
DVD-RWのドライブにCD-Rを入れて実験しましたが、
MediaTypeはCD-ROMと表示され、CD-Rであることが判別できませんでした。


犬ひろし  2006-05-24 05:43:01  No: 131554

ちょっと安易に提案してすみませんでした。
Image Mastering API (IMAPI) を駆使する
必要があるのかもしれないです。
他にいい方法があるのか考えてみます。


druekeberger  2006-05-26 12:11:05  No: 131555

回答ありがとうございます。さらに調べてみました。

IMAPIのサービスがあがっている状態で、
ドライブにメディアを入れると以下のCurrent Mediaのキーが作られるようです。
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\CD Burning\Current Media

このときMedia Typeという項目があり、実験の結果以下のような
値になりました。この値についての資料をどなたかご存知ないでしょうか?
(WMIのWin32_XXXXのCDROMDrive、LogicalDisk、PhysicalMediaなどの
 MediaType、IMAPIのIDiskRecorder::QueryMediaTypeで取得できる
 と思われるMediaTypeの値とも違うようです)

<<実験結果>>
書き込み済みのCD-R(おそらくファイナライズして
                   あったCD-Rだと思うので、CD-ROM扱い?)
0x00000002 

未フォーマットのCD-R
0x00000006

DVD-RAM(未フォーマットの場合もFAT32でフォーマットした場合も)
0x0000000a

これを使えば判定できる可能性がありそうなのですが、
この値についての資料がないため、確実性がありません。
(たとえばドライブが違ってもOKなのか?Media Typeのとりうる値は
 何があるのか?フォーマット形式等の違いによる値の変化がないかetc)

よろしくお願いいたします。


ひろ  2006-05-26 19:27:03  No: 131556

この辺が参考になるかもしれません

http://techrepublic.com.com/5208-6239-0.html?forumID=51&threadID=191983

http://support.microsoft.com/default.aspx?scid=kb;en-us;316529


druekeberger  2006-05-28 02:50:35  No: 131557

回答ありがとうございます。
ご指摘の1つ目のページの方のコメントでも
MediaTypeでいけるのでは?という意見でした。
が、MediaTypeの値に関する情報はありませんでした。

2つ目のページはCD-R/RWのドライブが認識されない場合の話題で、
メディアについての情報ではありませんでした。
海外のサイトもあさっているのですが、MediaTypeについて
これだ!!という情報が見つかっておりません。
引き続き情報提供お願いいたします。

私の方でも継続して調査しております。


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

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






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