2
我可以通过在C#中使用IMAPI方法轻松获取插入的可写介质的介质类型。不幸的是,当我拥有只读介质时,这些方法不起作用。我想了解一种方法来确定我的驱动器中插入了什么类型的介质。也许我可以通过读取光盘的扇区总大小来了解这一点。如何在C#应用程序中检测没有IMAPI的CD/DVD驱动器中的介质类型?
任何人都可以帮忙吗?
我可以通过在C#中使用IMAPI方法轻松获取插入的可写介质的介质类型。不幸的是,当我拥有只读介质时,这些方法不起作用。我想了解一种方法来确定我的驱动器中插入了什么类型的介质。也许我可以通过读取光盘的扇区总大小来了解这一点。如何在C#应用程序中检测没有IMAPI的CD/DVD驱动器中的介质类型?
任何人都可以帮忙吗?
你可以使用P /与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事件,但只要检测到它是什么类型的介质中,我真的不知道,但有可能另一个外部函数,您可以调用以获取该信息。