#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QDebug>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
}
MainWindow::~MainWindow()
{
delete ui;
}
char MainWindow::FirstDriveFromMask(ULONG unitmask)
{
char i;
for (i = 0; i < 26; ++i)
{
if (unitmask & 0x1)
break;
unitmask = unitmask >> 1;
}
return (i + 'A');
}
bool MainWindow::nativeEvent(const QByteArray &eventType, void *message, long *result)
{
MSG* msg = reinterpret_cast<MSG*>(message);
int msgType = msg->message;
if(msgType==WM_DEVICECHANGE)
{
PDEV_BROADCAST_HDR lpdb = (PDEV_BROADCAST_HDR)msg->lParam;
switch (msg->wParam) {
case DBT_DEVICEARRIVAL:
if(lpdb->dbch_devicetype == DBT_DEVTYP_VOLUME)
{
PDEV_BROADCAST_VOLUME lpdbv = (PDEV_BROADCAST_VOLUME)lpdb;
if(lpdbv->dbcv_flags ==0)
{
QString USBDisk = QString(this->FirstDriveFromMask(lpdbv ->dbcv_unitmask));
qDebug() << "USB_Arrived and The USBDisk is: "<<USBDisk ;
}
}
break;
case DBT_DEVICEREMOVECOMPLETE:
if(lpdb->dbch_devicetype == DBT_DEVTYP_VOLUME)
{
PDEV_BROADCAST_VOLUME lpdbv = (PDEV_BROADCAST_VOLUME)lpdb;
if(lpdbv->dbcv_flags == 0)
{
qDebug() << "USB_Removed";
}
}
break;
}
}
return false;
}
没有合适的资源?快使用搜索试试~ 我知道了~
Qt5在Windows环境检测U盘
共5个文件
cpp:2个
ui:1个
h:1个
5星 · 超过95%的资源 需积分: 44 182 下载量 75 浏览量
2015-07-18
12:37:41
上传
评论
收藏 3KB ZIP 举报
温馨提示
Qt5在Windows环境检测U盘 。在 Win7 X64 和 Qt 5.3.2 下测试通过。
资源推荐
资源详情
资源评论
收起资源包目录
Qt5_Win7_Udisk.zip (5个子文件)
Qt5_Win7_Udisk
Qt5_Win7_Udisk.pro 387B
mainwindow.cpp 2KB
mainwindow.h 518B
main.cpp 183B
mainwindow.ui 654B
共 5 条
- 1
robotics5
- 粉丝: 35
- 资源: 113
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
前往页