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事件,但只要檢測到它是什麼類型的介質中,我真的不知道,但有可能另一個外部函數,您可以調用以獲取該信息。