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