USB裝置插入與拔出的響應

2021-08-22 05:38:33 字數 786 閱讀 2184

有時候,我們需要檢測到usb裝置的插入與拔出事件,比如,乙個有加密鎖的程式,當加密鎖拔出時,程式應當給出相應提示,並可能採取退出程式的舉措。要達到這個目的,我們可以通過響應wm_devicechange訊息來達到這個目的,而wparam則可以告訴我們usb裝置是插入還是拔出的。如果wparam為dbt_devicearrival則是插入事件,如果為dbt_deviceremovecomplete則為刪除事件。這兩個巨集義於標頭檔案dbt.h中。以下以vc為例做成例子。

1. 在相關cpp檔案中加入頭文包含:

#include

2. 在相應類中新增函式:

lresult ctestusbchangedlg::ondevicechange(wparam wparam, lparam lparam)

return lresult();

}3. 新增訊息對映:

begin_message_map(ctestusbchangedlg, cdialog)

on_wm_syscommand()

on_wm_paint()

on_wm_querydragicon()

on_message(wm_devicechange, ondevicechange)

//}}afx_msg_map

end_message_map()

至此,程式已經可以檢測usb裝置的插入與撥出操作了。事實上,wm_devicechange不只支援usb裝置的插入與拔出,其它支援熱插拔的裝置也應支援,不過,因條件所限,只能測試usb裝置的情況。其它裝置如有網友能測試,希望能告訴我測試結果。

WINCE接收裝置插入拔出訊息

在wince系統中,可以通過由視窗接收乙個事件來判斷有新裝置插入。視窗只需要接收該訊息 wm devicechange。然後,通過判斷裝置型別和裝置名稱就可以判斷具體的裝置插入。例如判斷 sd卡的插入和拔出操作,其中sd卡的裝置名為 dsk1 那麼可以在頂層視窗中接收並判斷此訊息 case wm d...

USB裝置的插入檢測機制

參考 usb入門系列之五 usb主機是如何檢測到裝置的插入的呢?首先,在usb集線器的每個下游埠的d 和d 上,分別接了乙個15k歐姆的下拉電阻到地。這樣,在集線器的埠懸空時,就被這兩個下拉電阻 拉到了低電平。而在usb裝置端,在d 或者d 上接了1.5k歐姆上拉電阻。對於全速和高速裝置,上拉電阻是...

U盤插入與拔出識別

在很多應用程式中,我們往往希望程式能夠自動檢測出即插即用型裝置的插入和拔出.在windows平台上,當pnp裝置插入或柭出時系統會發出wm devicechange訊息,應用程式只需截獲該訊息並作出相應的處理,就可以實現上述功能.下面我們以乙個mfc開發環境,寫出乙個能夠識別出u盤插入和拔出的程式例...