在网上搜集了一下,总体思路如下:
1.通过消息WM_DEVICECHANGE。
1_1
BEGIN_MESSAGE_MAP(***, CDialog)
//{{AFX_MSG_MAP(***)
ON_MESSAGE(WM_DEVICECHANGE, OnMyDeviceChange)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
LRESULT FlashPlayer::OnMyDeviceChange(WPARAM wParam, LPARAM lParam)
{
...
}
1_2
LRESULT CMainDlg::OnDeviceChange(UINT /*uMsg*/, WPARAM wParam, LPARAM /*lParam*/, BOOL& /*bHandled*/)
{
switch(wParam)
{
case DBT_DEVICEARRIVAL:
MessageBox(hWnd,L"in",NULL,MB_OK);
break;
case DBT_DEVICEREMOVECOMPLETE:
MessageBox(hWnd,L"out",NULL,MB_OK);
break;
default:
break;
}
return 0;
}
2.就是用
WM_FILECHANGEINFO, 还有就是定义一个通知,只要有一些变化,如文件的然后操作,包括卡的插入和拔出。
3.实时判断文件夹存在不存在!
4.同1和2
SD CARD有一个引脚是检测拔插的,监视这个引脚就可以拉。应用程序上只要监视那个消息就可以拉.