C 中判斷掃瞄槍輸入與鍵盤輸入

2021-12-29 23:27:32 字數 704 閱讀 5198

提出問題:在收貨系統中,常常要用到掃瞄槍掃瞄條碼輸入到textbox,當條碼無法掃瞄時,需要手工輸入。如果是掃瞄槍輸入時,我們將自動去判讀條碼,而手工輸入時,最終需要加按回車鍵確認後判讀條碼。這時候我們就要判斷輸入裝置是手工還是掃瞄槍。

嘗試的方法:

1.將textbox屬性設為readonly=true。結果:無法輸入。

2.在textbox的keypress事件中設定屬性e.handle=true。結果:掃瞄槍輸入時也會觸發keypress事件,因此也不能輸入。

3.在textbox的valuechanged事件中判斷結果。結果:掃瞄槍也是乙個乙個字元輸入,不是一次性將整個條碼輸入。

思考:掃瞄槍其實在輸入上與鍵盤完全相似。但是人工輸入和掃瞄裝置輸入的區別在於,掃瞄裝置輸入速度比較快而且時間間隔比較平均。

實驗:

實驗結果證明開始的推斷。

解決方法:

private datetime _dt = datetime.now;  //定義乙個成員函式用於儲存每次的時間點

private void textbox1_keypress(object sender, keypresseventargs e)

至此, 問題解決,希望大家有更好的方法留言交流

摘自:yyknight的學習部落格

VB判斷鍵盤輸入

vb判斷鍵盤輸入 下圖表示的是鍵盤各按鍵的keycode值 到這裡,我們在keydown或keyup等事件的 裡用 if keycode 20 then 或 if keycode 20 then 語句就可以判斷鍵盤輸入了。vb中還有一些特殊按鍵 private sub form keydown ke...

C 模擬鍵盤輸入

主要用到的類sendkeys.並通過其方法send 向當前活動的應用程式傳送單擊動作行為。例如 sendkeys.send 123 就會模擬鍵盤敲擊1,2,3,每個鍵都由乙個或多個字元表示。若要指定單個鍵盤字元,請使用該字元本身。例如,若要表示字母 a,請將字串 a 傳遞給方法。若要表示多個字元,請...

使用C 模擬鍵盤輸入

假如你想做乙個模擬鍵盤對當前的active程序進行輸入,該怎麼辦呢?今天就介紹乙個如何利用c 實現程式設計法模擬鍵盤輸入 今天我們使用的是system.windows.forms.dll中的sendkeys這個類 這是乙個靜態類,主要有兩個方法send表示傳送後立刻返回,sendwait表示傳送後等...