如何在没有插入磁盘介质的情况下以编程方式区分CD驱动器和DVD驱动器?

时间:2012-09-20 17:43:09

标签: c#

我想如何区分cd驱动器和dvd驱动器没有插入磁盘介质。

由于存在插入的磁盘介质的答案。

2 个答案:

答案 0 :(得分:4)

我知道这样做的唯一方法是在机器上获取WMI Win32_CDROMDrive实例,然后在Name或DeviceId属性中检查DVD。

您甚至可能必须从isntance获取DeviceID,然后在HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Enum [DeviceIdHere] \ Device Parameters下检查注册表,然后检查是否存在名为“DefaultDvdRegion”的值”。这对于CDROM驱动器不存在,但对于DVD驱动器则不存在。

答案 1 :(得分:0)

如果您想使用Windows提供的IMAPI,那么您还可以使用类似的代码:

// Depending on how you import the COM interface, the names of types and methods
// may differ slightly from the following example. You can either add a reference
// to the COM library in Visual Studio, or roll your own if you choose.

MsftDiscRecorder2 recorder = new MsftDiscRecorder2();
recorder.InitializeDiscRecorder(uniqueId);  // From MsftDiscMaster2
foreach (FeaturePageType feature in recorder.SupportedFeaturePages)
{
    if (feature == FeaturePageType.DvdRead)
    {
        return true;
    }
}
return false;