我正在制作Windows Mobile应用程序,它引用了一些DLL,但我在这里遇到了一些问题。
想象一下,我的应用程序仅安装在存储卡中存在的与存储卡相关的DLL中,
如果我启动的应用程序引用了DLL的一部分,现在我将移除存储卡,但我的应用程序仍在运行,它不会退出,最终只会导致我的移动设备重启。
我确实收到了设备卡删除通知,但是它在DLL及其c++代码中..如果卡被删除,则存储卡中将没有DLL,我什至没有在C#中得到通知,我也没有如何获取卡删除通知。在C#中。如何处理这些情况,请告诉我。
谢谢
最佳答案
您可以使用功能SHChangeNotifyRegister到WM_FILECHANGEINFO消息。
订阅后,您将收到ID为诸如SHCNE_DRIVEREMOVED
或SHCNE_MEDIAREMOVED
之类的事件,因此删除存储卡后可以触发一些操作。
要使用紧凑框架中的本机函数,请使用P / Invoke。