久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

Qt如何知道新的USB存儲設(shè)備何時連接?

How to know when a new USB storage device is connected in Qt?(Qt如何知道新的USB存儲設(shè)備何時連接?)
本文介紹了Qt如何知道新的USB存儲設(shè)備何時連接?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!

問題描述

我想知道 USB 設(shè)備何時連接到運行我的 Qt 應(yīng)用程序的計算機(在 Windows 中).在我的主要 QWidget 中,我重新實現(xiàn)了 winEventFilter,如下所示:

I want to know when a USB device is connected to the computer that my Qt application is running on (in Windows). In my main QWidget, I've reimplemented winEventFilter like this:

bool winEventFilter ( MSG * msg, long * result ) {
    qDebug() << msg;
    return false;
}

當(dāng)我連接 USB 設(shè)備時,我希望 qDebug 至少發(fā)送一些東西,但我什么也沒收到.

I'd expect qDebug to send at least something when I connect a USB device, but I don't get anything.

我猜我從根本上誤解了這里的過程 - 這是我的第一個 Qt 應(yīng)用程序!

I'm guessing that I'm fundamentally misunderstanding the process here - this is my first Qt app!

推薦答案

我相信您可能缺少的是注冊設(shè)備通知的調(diào)用.這是我用來做同樣事情的代碼,雖然我覆蓋了 QWidget 類的 winEvent() 方法而不是 winEventFilter.

I believe what you may be missing is the call to register for device notification. Here is code that I use to do the same thing, though I override the winEvent() method of the QWidget class and not the winEventFilter.

// Register for device connect notification
DEV_BROADCAST_DEVICEINTERFACE devInt;
ZeroMemory( &devInt, sizeof(devInt) );
devInt.dbcc_size = sizeof(DEV_BROADCAST_DEVICEINTERFACE);
devInt.dbcc_devicetype = DBT_DEVTYP_DEVICEINTERFACE;
devInt.dbcc_classguid = GUID_DEVINTERFACE_VOLUME;

m_hDeviceNotify =
    RegisterDeviceNotification( winId(), &devInt, DEVICE_NOTIFY_WINDOW_HANDLE );   
if(m_hDeviceNotify == NULL)
{
    qDebug() << "Failed to register device notification";
} // end if

注意:您很可能需要更改 DEV_BROADCAST_DEVICEINTERFACE 的值以滿足您的需要.

NOTE: You will most likely need to change the values of the DEV_BROADCAST_DEVICEINTERFACE to fit your needs.

要使用此代碼,您需要包含正確的頭文件并執(zhí)行正確的設(shè)置.DEV_BROADCAST_DEVICEINTERFACE 需要包含 Dbt.h 標(biāo)頭.此外,此代碼的重點是 RegisterDeviceNotification 函數(shù).信息可在 MSDN

To use this code you will need to include the proper header files and perform the proper setup. DEV_BROADCAST_DEVICEINTERFACE requires the Dbt.h header to be included. Also, the focal point of this code is on the RegisterDeviceNotification function. Info is available on MSDN

這篇關(guān)于Qt如何知道新的USB存儲設(shè)備何時連接?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

【網(wǎng)站聲明】本站部分內(nèi)容來源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請聯(lián)系我們刪除處理,感謝您的支持!

相關(guān)文檔推薦

How can I read and manipulate CSV file data in C++?(如何在 C++ 中讀取和操作 CSV 文件數(shù)據(jù)?)
In C++ why can#39;t I write a for() loop like this: for( int i = 1, double i2 = 0; (在 C++ 中,為什么我不能像這樣編寫 for() 循環(huán): for( int i = 1, double i2 = 0;)
How does OpenMP handle nested loops?(OpenMP 如何處理嵌套循環(huán)?)
Reusing thread in loop c++(在循環(huán) C++ 中重用線程)
Precise thread sleep needed. Max 1ms error(需要精確的線程睡眠.最大 1ms 誤差)
Is there ever a need for a quot;do {...} while ( )quot; loop?(是否需要“do {...} while ()?環(huán)形?)
主站蜘蛛池模板: 成人日批视频 | 国产日韩一区二区 | 欧美综合一区二区三区 | 国产在线观看一区二区三区 | 一区精品在线观看 | 国产精品精品3d动漫 | 欧美精品一区二区三区在线播放 | 久久久久久久久91 | 亚洲一区免费视频 | 99pao成人国产永久免费视频 | 成人精品毛片国产亚洲av十九禁 | 午夜小影院 | 毛片网站在线观看 | 国产成人免费视频网站高清观看视频 | 天堂色| 亚洲综合三区 | 久久久久久久国产精品 | 成年人在线视频 | 91精品国产综合久久久久久 | 国产目拍亚洲精品99久久精品 | 天天精品在线 | 天天艹| 一级二级三级黄色 | 久久久久国产精品 | 亚洲免费一区 | 国产在视频一区二区三区吞精 | 精品一区二区在线观看 | 欧美黄视频 | 日本三级在线网站 | 欧美激情在线精品一区二区三区 | 九九免费在线视频 | 欧美不卡一区二区 | 国产农村妇女毛片精品久久麻豆 | av日韩一区 | 亚洲一区二区三区免费在线 | 久久91av| 久久99精品国产 | 色呦呦在线 | av大片| 久久国产一区 | 永久精品 |