头文件包含:
#include <WTypes.h>
#include <dbt.h>
代码实现:
int mvCheckDisk(char *disk) // 获取USB盘符
{
WCHAR wsz[64];
swprintf(wsz, L"%S", disk);
LPCWSTR p = wsz;
if(GetDriveType(p)==DRIVE_REMOVABLE)
return 0;
return -1;
}
int mvDetectUsb() //检查是否存在已插入的USB磁盘
{
char buf[10];
DWORD lod=GetLogicalDrives();
if (lod!=0)
{
for (int i=0;i<26;i++)
{
DWORD dwTemp = lod & 1;
if (dwTemp==1)
{
sprintf(buf,"%c",'A'+i);
strcat(buf,":\\");
if(!mvCheckDisk(buf))
{
if (!mbIsUsbReadOnly(QString(buf)))
{
QMessageBox::warning(this, QString::fromLocal8Bit("警告"),
QString(buf) + QString::fromLocal8Bit(" 磁盘没有打开写保护!请打开写保护后重新插入!"));
return 1;
}
}
}
lod=lod>>1;
}
}
return 0;
}