QT 監聽 USB 裝置 插入、拔出動作
參考網上資料,通過QT 實現
#ifndef WIDGET_H #define WIDGET_H #include <QtGui/QWidget> #include <windows.h> #include <QString> class Widget : public QWidget { Q_OBJECT public: Widget(QWidget *parent = 0); ~Widget(); protected: bool winEvent(MSG *msg, long *result); private: //UsbConfig usbConfig; char FirstDriveFromMask (ULONG unitmask); }; #endif // WIDGET_H
#include "qt_Watch/qwidget.h" #include <QDebug> #include <Windows.h> #include <dbt.h> Widget::Widget(QWidget *parent) : QWidget(parent) { setWindowFlags(Qt::Window); //視窗以Window為父視窗 } Widget::~Widget() { } bool Widget::winEvent(MSG *msg,long *result) { int msgType = msg->message; if(msgType == WM_DEVICECHANGE) { qDebug() << "收到事件 " ; PDEV_BROADCAST_HDR lpdb = (PDEV_BROADCAST_HDR)msg->lParam; switch(msg->wParam) { case DBT_DEVICETYPESPECIFIC: { qDebug() << "DBT_DEVICETYPESPECIFIC " ; break; } case DBT_DEVICEARRIVAL: if (lpdb -> dbch_devicetype == DBT_DEVTYP_VOLUME) { PDEV_BROADCAST_VOLUME lpdbv = (PDEV_BROADCAST_VOLUME)lpdb; if (lpdbv -> dbcv_flags == 0) { // 插入U盤,此處可以做你想做的事 QString USBDisk = QString(this->FirstDriveFromMask(lpdbv ->dbcv_unitmask)); qDebug() << "USB_Arrived and The USBDisk is: "<<USBDisk ; } } qDebug() << "DBT_DEVICEARRIVAL" ; 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_裝置移除"; } } qDebug() << "DBT_DEVICEREMOVECOMPLETE" ; break; } } return false; } char Widget::FirstDriveFromMask (ULONG unitmask) { char i; for (i = 0; i < 26; ++i) { if (unitmask & 0x1) break; unitmask = unitmask >> 1; } return (i + 'A'); }
#include <QApplication>
#include "qt_Watch/qwidget.h"
int main(int argc,char ** argv)
{
QApplication app(argc,argv);
Widget widget;
widget.show();
return app.exec();
}
相關推薦
QT 監聽 USB 裝置 插入、拔出動作
參考網上資料,通過QT 實現#ifndef WIDGET_H #define WIDGET_H #include <QtGui/QWidget> #include <window
監聽耳機的插入和拔出問題
在接入容聯雲的視訊通訊預設第一次接入視訊的時候,是需要開啟擴音的,所以需要監聽耳機的插入和拔出問題。 程式碼如下: 第一步:清單檔案的配置 <receiver android:name=".rlyun.service.HeadsetPlugReceiver">
QT程式設計--監聽USB裝置拔出和插入。
第一步過載函式winEvent(),5.6.0版本是nativeEvent(),如下: bool Dialog_XXX::nativeEvent(const QByteArray &eventType, void *message, long *result) {
PyQt4實現USB裝置插入到彈出的檢測(Windows)
直沒怎麼看過 QextSerialPort 中windows下列舉串列埠的具體實現(原因?對win32api不瞭解,看不懂啊_) 經過一段時間的學習,對QextSerialPort總算理清了一些,於是,就可以用python實現列舉串列埠了,也可以檢測串列埠的載入與移除了。
檢測USB裝置的插入和拔出
1.需求 需要一個DLL,它可以自動檢測USB裝置插入和拔出,並以回撥函式的方法告訴呼叫DLL的應用程式。 2.預研 2.1參考文件 (1)關於“Registering for DeviceNotification”(官方文件) 地址:https://msdn.micr
監聽瀏覽器返回鍵、後退、上一頁事件(popstate)操作返回鍵
som cnblogs back eba spa 查詢 sta ces 關閉 在WebApp或瀏覽器中,會有點擊返回、後退、上一頁等按鈕實現自己的關閉頁面、調整到指定頁面、確認離開頁面或執行一些其它操作的需求。可以使用 popstate 事件進行監聽返回、後退、上一頁操
配置Tomcat監聽80端口、配置Tomcat虛擬主機、Tomcat日誌
tomcat服務配置Tomcat監聽80端口1、[root@centos7 package]# vim /usr/local/tomcat/conf/server.xml <Connector port="80" protocol="HTTP/1.1" connection
配置Tomcat監聽80端口、虛擬主機、日誌
說明 訪問日誌 reat release webapp eat all ets pre 16.4 配置Tomcat監聽80端口 修改配置文件 [root@taoyun src]# vim /usr/local/tomcat/conf/server.xml #可以修改成
Tomcat監聽80端口、配置Tomcat虛擬主機、Tomcat日誌
inpu 數據庫 網站 connector example handle length 創建 ssl 配置Tomcat監聽80端口 1.配置Tomcat服務的訪問端口 Tomcat默認啟動的端口是8080,如果你想修改為80,則需要修改server.xml文件。 [ro
配置tomcat監聽80端口、配置tomcat虛擬機、tomcat日誌
classname nginx代理 data restart cal 停止 環境 生產環境 netstat 配置tomcat監聽80端口 tomcat 監聽的是8080端口,如果想要直接訪問,不加8080端口(默認輸入一個IP或者域名,訪問80端口時是可以省略IP後端口號
配置Tomcat監聽80端口、 配置Tomcat虛擬主機、 Tomcat日誌
瀏覽器 目錄的作用 虛擬主機 bin protoc 相同 其中 日誌文件 true 配置Tomcat監聽80端口 Tomcat監聽的是8080端口,也可以自定義為80
Tomcat設置監聽端口80、配置虛擬主機、安裝zrlog博客、日誌文件
Tomcat tomcat日誌 tomcat監聽端口 tomcat虛擬主機 zrlog博客安裝 設置Tomcat監聽端口為80 默認Tomcat監聽端口為8080端口,如果是在lnmp環境下,我們必須停用作用80端口的nginx; /etc/init.d/nginx stop
配置Tomcat監聽80端口、配置Tomcat的虛擬主機、Tomcat的日誌
Linux學習筆記配置Tomcat監聽80端口 配置Tomcat的虛擬主機 Tomcat的日誌 配置Tomcat監聽80端口、配置Tomcat的虛擬主機、Tomcat的日誌
配置Tomcat監聽80端口、配置Tomcat的虛擬主機、日誌配置
項目文件 windows文件 TE ger java dir window 虛擬 記錄 配置Tomcat監聽80端口 編輯配置文件vim /usr/local/tomcat/bin/startup.sh 搜索關鍵字:Connector port ,將8080修改為80 更改
使用Vue,實現事件物件的“監聽”(addEventListener)、“銷燬”(removeEventListener)。
場景 我在寫一個“滑動驗證碼”的外掛。 需要給滑塊繫結事件,監聽已滑動的距離。 驗證成功後,銷燬繫結事件。 實現程式碼 1、在data裡定義 data() { return { events: { handleE
python應用系列教程——python使用scapy監聽網路資料包、按TCP/IP協議進行解析
全棧工程師開發手冊 (作者:欒鵬) python使用scapy監聽抓取網路資料包。 scapy具有模擬傳送資料包、監聽解析資料包、網際網路協議解析、資料探勘等多種用處。這裡我們只來說一下scapy監聽資料包,並按照不同的協議進行解析。
輸入框事件監聽(一):keydown、keyup、input
當輸入框的值發生變化時,我們可以通過keydown、keyup、input、onchange、blur事件觀察到其值的變化,但它們的應用時機與應用場景存在顯著的差異。 1. 實時觀察 需要觀察到使用者每次鍵盤輸入的變化,必須要用keydown、keyup
VCMFC根據USB裝置PID、VID自動查詢串列埠號
在VC/MFC環境下有兩種方法來根據PID、VID獲取對應的串列埠號,這樣操作的目的是避免客戶手動設定下拉框的資訊,讓軟體自動識別!當然,前提是有自己的USB PID、VID 下面是C++程式碼示例: // 第一種方法需要包含此標頭檔案 #include <Setu
mysql 觸發器 監聽這個表插入時增加資料 在某欄位變動時進行觸發
專案觸發器 在mysql 表中增加 需求 當這個表 新增記錄的時候觸發 DROP TRIGGER IF EXISTS t_make_data; //刪除原先的觸發器 CREATE TRIGGER t
Android插入USB裝置,自動彈出提示執行apk
USB HOST模式開發下可能會遇到這個問題。 第一步是在AndroidManifest.xml檔案中修改,主意下面紅色字型 <manifest ...><uses-featureandroid:name="android.hardware.usb.ho