怎么监控U盘插入 和拔出
如题.想做个WIN32的程序,监控U盘的插入 和拔出。 插入U盘的时候能知道U盘的盘符,拔出的时候一样。
在WIN32的控制台程序里面要怎么写的?用的是VS2010。
[解决办法]
http://topic.csdn.net/u/20120122/00/997441c7-2803-435a-abb1-d07879a44d84.html
楼主看下吧
[解决办法]
LRESULT CUMonDlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
if (message == WM_DEVICECHANGE)
{
DealDeviceChange(wParam, lParam);
}
return CDialog::WindowProc(message, wParam, lParam);
}
BOOL CUMonDlg::DealDeviceChange(WPARAM wParam, LPARAM lParam)
{
BOOL bRes = TRUE;
PDEV_BROADCAST_HDR lpdb = (PDEV_BROADCAST_HDR)lParam;
switch (wParam)
{
case DBT_DEVICEARRIVAL:
if (lpdb->dbch_devicetype == DBT_DEVTYP_VOLUME)
{
PDEV_BROADCAST_VOLUME lpdbv = (PDEV_BROADCAST_VOLUME)lpdb;
TCHAR szDisk[4] = {0};
FirstDriveFromMask(lpdbv->dbcv_unitmask, szDisk);
_tcscat(szDisk, TEXT(":\\"));
if (PathFileExists(szDisk))
{
UINT nDriveType = GetDriveType(szDisk);
if (nDriveType == DRIVE_REMOVABLE)
{
Sleep(1000);
StartCopyThread();
_tcscpy(m_szDisk, szDisk);
}
}
}
break;
case DBT_DEVICEREMOVECOMPLETE:
break;
default:
break;
}
return bRes;
}