vc 获取U盘盘符

UINT DiskType;
 size_t   szAllDriveStrings   =   GetLogicalDriveStrings(0,NULL);   
char   *pDriveStrings   =   new   char[szAllDriveStrings   +   sizeof(_T( " "))];   
GetLogicalDriveStrings(szAllDriveStrings,pDriveStrings);   
size_t   szDriveString   =   strlen(pDriveStrings);   
while(szDriveString   >   0)   
{   
  AfxMessageBox(pDriveStrings);   
  DiskType=GetDriveType(pDriveStrings);   
  switch(DiskType)     
  {   
  case   DRIVE_NO_ROOT_DIR:   
   return;   
  case   DRIVE_REMOVABLE:   
   ::AfxMessageBox( "移动存储设备 ");   
   break;   
  case   DRIVE_FIXED:   
   ::AfxMessageBox( "固定硬盘驱动器 ");   
   break;   
  case   DRIVE_REMOTE:   
   ::AfxMessageBox( "这是网络驱动器 ");   
   break;  
  case   DRIVE_CDROM:   
   ::AfxMessageBox( "这是光盘驱动器 ");   
   break;
   
  }
  
  pDriveStrings   +=   szDriveString   +   1;   
  szDriveString   =   strlen(pDriveStrings);   
}   


 

、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、

===========================================================================================

映射消息响应函数
ON_WM_DEVICECHANGE(OnDeviceChange)

加入
afx_msg void OnDeviceChange(UINT nEventType, DWORD dwData);


void CGggfDlg::OnDeviceChange(UINT nEventType, DWORD dwData)
{
    if( nEventType ==32768) 
	{
        MessageBox(_T("U盘插入"));
	}

    else if(nEventType ==32772)  
	{
        MessageBox(_T("U盘拔出"));
	}
}


----------------------------------------------------------------------------------------------------------------------------

获取U盘符

    CString str = _T("z:\\");
    for( char ch = 'z'; ch >='c'; ch--)
    {
        str.SetAt(0,ch);
        UINT type = GetDriveType(str);
        if(DRIVE_REMOVABLE == type)
        {
            AfxMessageBox(str);
        }
    }



 

你可能感兴趣的:(vc 获取U盘盘符)