我可以通过在C#中使用IMAPI方法轻松获取插入的可写介质的媒体类型。不幸的是,当我有一个只读介质时,这些方法不起作用。我想学习一种方法来计算我的驱动器中插入了什么类型的介质。也许我可以通过读取光盘的总扇区大小来解决这个问题。
有人可以帮忙吗?
答案 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事件但是至于检测它是什么类型的媒体,我不是很确定,但是你可以调用另一个外部函数来获取该信息。