アプリケーションを使用するとき、
必ずCD-ROMのデータのアクセスを必要とし、
もしCD-ROMが挿入されていない場合は
「CD-ROMを挿入してください」
というようなメッセージを出してCD-ROM挿入を促すようにするには
どうすればよいでしょうか?
PCによってCD-ROMのドライブが異なる場合にも対応したいです。
なお、使用するバージョンはVB2008です。
よろしくお願いします。
> PCによってCD-ROMのドライブが異なる場合にも対応したいです。
複数のドライブを持っている場合はどうしたいのでしょうか。
(すべてのドライブに CD-ROM を入れる必要があるのでしょうか?)
また、その CD-ROM とは、どのような物でもよいのでしょうか?
特定のディスクのみを対象としたいのであれば、それはどのようにして
判定させたいのでしょうか?
> なお、使用するバージョンはVB2008です。
たとえば……。
Dim q = From d In My.Computer.FileSystem.Drives _
Where d.DriveType = DriveType.CDRom
If q.LongCount() = 0 Then
MsgBox("このPCには光ディスク ドライブがありません", vbInformation)
Else
Dim list = q.Where(Function(d) d.IsReady).ToList()
If list.Count = 0 Then
MsgBox("いずれかのドライブに CD-ROM を入れてください。", vbInformation)
Else
'変数list に、準備のできているドライブの一覧が入っている
End If
End If
魔界の仮面弁士さん、ご回答ありがとうございます。
複数のCD-ROMドライブがある場合には、いずれかのドライブに
特定のCD-ROMが入っていれば良いです。
しかしながら、特定のCD-ROMであることを識別するには、
どのようにすればよいでしょうか?
また、ここで言っているCD-ROMはCD-Rを使用して作成するのですが、
これを作成するときも何か留意点がありますでしょうか?
よろしくお願いします。
> しかしながら、特定のCD-ROMであることを識別するには、
> どのようにすればよいでしょうか?
それは御自身で決定されるべき事柄ですよね……私らに聞いても答えは出ないですよ。
まぁ相談であればのりますが、それならそれでもう少し情報を提示していただかないと。
分かっているのは、「アプリ使用時に、必ず CD-ROM データのアクセスを必要とする」
という前提条件だけです。これだけの情報では、第三者に答えを出すのは困難です。
そもそも、
・何故 CD-ROM で無ければならないのか? (USB メモリや共有フォルダでは駄目なのか?)
・どのようなデータを CD-ROM から読み込もうとしているのか?
・データ量によっては、ディスクの交換を必要とするのか?
・アプリケーションは、そのディスク上から起動されるのか否か?
・そのディスクは、きむりんさん自身が作るものなのか? それとも利用者にも自作可能なのか?
などなど考慮すべき点もあるでしょうし、とにかく、仕様の洗い出しが必要でしょうね。
プログラム化するのは、その後の話となるでしょう。
プログラム化の前に、何をもって「特定のCD-ROM」としたいのかを決めてみてください。
そして次に、それが PC から判定できる情報かどうかを検討してください。
たとえば、その判定条件というのが
「\SAMPLE\DATA というフォルダがあること」
「ディスク内の総ファイルサイズが 123,456,789 バイトであること」
「ボリュームラベルが KIMURIN であること」
などであれば、プログラムから判定するのは容易ですが、判定条件を
「ディスク表面に、"きむりんデータディスク" とペン書きされていること」
「SONY 製 CDQ80 シリーズの CD-R メディアであること」
などにしてしまうと、プログラムからではどうしようもありませんよね。
その上で『こんな情報を取得したいのだけれど、VB から取得する方法はありますか?』
『こういう情報を得ようと、こんなコードを書いてみたのですが、期待動作しません。』
などといった具体的な相談を投稿すれば、回答も付きやすくなるかと思います。
なるほど、ディスクのボリュームラベルやフォルダ・ファイルの存在で
判断するなどという方法が使えばいいのですね。
質問の内容が掲示板の趣旨に外れた内容となってしまい
申し訳ありませんでした。
これについては解決とさせていただきます。
ありがとうございました。
ツイート | ![]() |