如何在C#应用程序中检测没有IMAPI的CD / DVD驱动器中的介质类型?

时间:2011-02-05 13:23:29

标签: c# imapi

我可以通过在C#中使用IMAPI方法轻松获取插入的可写介质的媒体类型。不幸的是,当我有一个只读介质时,这些方法不起作用。我想学习一种方法来计算我的驱动器中插入了什么类型的介质。也许我可以通过读取光盘的总扇区大小来解决这个问题。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

您可以将p / invoke与SHChangeNotifyRegister函数一起使用:

    [DllImport("shell32.dll", SetLastError=true, EntryPoint="#2", CharSet=CharSet.Auto)]
static extern UInt32 SHChangeNotifyRegister(
            IntPtr hWnd,
            SHCNF fSources,
            SHCNE fEvents,
            uint wMsg,
            int cEntries,
            ref SHChangeNotifyEntry pFsne);

你可以收听SHCNE_MEDIAINSERTED事件但是至于检测它是什么类型的媒体,我不是很确定,但是你可以调用另一个外部函数来获取该信息。