Skip to main content
 首页 » 编程设计

c#之如何在C#应用程序中没有IMAPI的情况下检测CD/DVD驱动器中的媒体类型

2024年01月12日34birdshome

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

有人可以帮忙吗?

请您参考如下方法:

您可以通过SHChangeNotifyRegister函数使用p / invoke吗:

    [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事件,但是就检测到哪种类型的媒体而言,我不确定,但是您可能可以调用另一个外部函数来获取该信息。