首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我能从.NET中唯一地识别DVDR(W)(+/-)介质吗?

我能从.NET中唯一地识别DVDR(W)(+/-)介质吗?
EN

Stack Overflow用户
提问于 2009-07-22 11:11:27
回答 2查看 920关注 0票数 5

我想从.NET代码中识别DVDR介质。这是有可能的,怎么做的?

某种叫做Windows的库。

更新

我有很多DVDR,我需要识别其中的每一个,但不取决于内容或磁盘名称。每个DVDR在工厂获得的某种序列号。

EN

回答 2

Stack Overflow用户

发布于 2009-07-22 14:38:13

您可以使用IMAPI v2 API实现这一点。

一旦您在.NET项目中获得了正确的引用,以及在该API中定义的各种枚举(其中有相当多的引用!),代码就相对简单了。类似于(伪代码):

代码语言:javascript
运行
复制
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网站上有一篇很好的文章和示例项目,它相当全面地展示了这一点:

用C#和IMAPI2刻录和擦除CD/DVD/Blu射线介质

该项目包含的不仅仅是检测媒体类型(因此是标题!),而是包含代码,以便在烧录/擦除媒体之前有效地检测媒体类型。

从该条中:

确定媒体类型 若要确定硬盘驱动器上的媒体类型和可用空间,请创建一个MsftDiscFormat2Data对象并在recorder属性中设置当前记录器。然后可以从IDiscFormat2Data CurrentPhysicalMediaType属性获取媒体类型。 拥有媒体类型后,创建一个MsftFileSystemImage对象并使用媒体类型调用ChooseImageDefaultsForMediaType方法。

票数 2
EN

Stack Overflow用户

发布于 2009-07-22 13:01:18

也许我在代码工程上找到的这篇文章能有所帮助?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1164567

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档