あるドライブに入っているメディアがCD-R、DVD-RAMなど、
どのメディアであるかを識別する方法を教えてください。
国内、海外問わずに探しているのですが、それらしい情報にたどり着けません。
WMIのWin32_PhysicalMediaでいけるかも?と思って実験コードを
書いてみても期待する結果にはなりませんでした(実験コードがまずいだけかも)
環境はWinXP SP1、VB6でサードパーティ製品を使わない環境です。
VB6以外でも情報があれば助かります。
よろしくお願いいたします。
WMI の CDROMDrive でどうでしょう?
MediaTypeを指定すれば、いけると思います。
回答ありがとうございます。Win32_CDROMDriveを試してみました。
DVD-RWのドライブにCD-Rを入れて実験しましたが、
MediaTypeはCD-ROMと表示され、CD-Rであることが判別できませんでした。
ちょっと安易に提案してすみませんでした。
Image Mastering API (IMAPI) を駆使する
必要があるのかもしれないです。
他にいい方法があるのか考えてみます。
回答ありがとうございます。さらに調べてみました。
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)
よろしくお願いいたします。
この辺が参考になるかもしれません
http://techrepublic.com.com/5208-6239-0.html?forumID=51&threadID=191983
http://support.microsoft.com/default.aspx?scid=kb;en-us;316529
回答ありがとうございます。
ご指摘の1つ目のページの方のコメントでも
MediaTypeでいけるのでは?という意見でした。
が、MediaTypeの値に関する情報はありませんでした。
2つ目のページはCD-R/RWのドライブが認識されない場合の話題で、
メディアについての情報ではありませんでした。
海外のサイトもあさっているのですが、MediaTypeについて
これだ!!という情報が見つかっておりません。
引き続き情報提供お願いいたします。
私の方でも継続して調査しております。
ツイート | ![]() |