.NET コードから DVDR メディアを識別したいと考えています。それは可能で、どのように?
Windows API を呼び出すある種のライブラリ。
アップデート
多くの DVDR があり、それぞれを識別する必要がありますが、コンテンツやディスク名には依存しません。DVDR が工場で取得する、各 DVDR のある種のシリアル番号。
これは、 IMAPI v2 APIを使用して実現できます。
.NET プロジェクト内に適切な参照と、その API 内で定義されているさまざまな列挙型 (かなりの数があります) があれば、コードは比較的簡単です。(疑似コード) のようなもの:
IDiscRecorder2 discRecorder = (IDiscRecorder2)[*cd/dvd drive*];
discFormatData.Recorder = discRecorder;
IMAPI_MEDIA_PHYSICAL_TYPE mediaType = discFormatData.CurrentPhysicalMediaType;
string mediaTypeString = GetMediaTypeString(mediaType);
where:
IMAPI_MEDIA_PHYSICAL_TYPE is an enum such like:
public enum IMAPI_MEDIA_PHYSICAL_TYPE
{
IMAPI_MEDIA_TYPE_UNKNOWN = 0,
IMAPI_MEDIA_TYPE_CDROM = 1,
IMAPI_MEDIA_TYPE_CDR = 2,
IMAPI_MEDIA_TYPE_CDRW = 3,
IMAPI_MEDIA_TYPE_DVDROM = 4,
IMAPI_MEDIA_TYPE_DVDRAM = 5,
[not the complete enum...snipped for brevity!]
}
and the "GetMediaTypeString" function simply gives a friendly string
representation of the enum name.
CodeProject の Web サイトには、これをかなり包括的に示した優れた記事とサンプル プロジェクトがあります。
C# と IMAPI2 を使用した CD/DVD/Blu-ray メディアの書き込みと消去
そのプロジェクトには、メディアの種類を検出するだけでなく (したがって、タイトルです!)、メディアを書き込む/消去する前にメディアの種類を効果的に検出するためのコードが含まれています。
記事から:
メディア タイプの決定
メディアの種類とハード ドライブの空き容量を確認するには、MsftDiscFormat2Data オブジェクトを作成し、Recorder プロパティに現在のレコーダーを設定します。次に、IDiscFormat2Data CurrentPhysicalMediaType プロパティからメディア タイプを取得できます。
メディア タイプを取得したら、MsftFileSystemImage オブジェクトを作成し、メディア タイプで ChooseImageDefaultsForMediaType メソッドを呼び出します。
おそらく、 Code Projectで見つけたこの記事が役に立ちますか?