2012-09-24 57 views
2

我正在編寫.NET 4中的C#應用​​程序。在應用程序中,我有2個文本框 - 一個用於用戶輸入,另一個用於USB掃描器輸入。有什麼方法可以檢測輸入來自哪個設備 - 來自鍵盤或掃描儀(掃描儀從條形碼發送字符,最後輸入Enter)。有什麼辦法可以做到這一點。到目前爲止,我試圖在文本框onKeyDownonKeyPress觸發器中捕獲它,但沒有成功。我只得到字符。檢測輸入設備類型.NET

我猜我必須在反射的某個地方看,但自3天以來我沒有找到任何東西。

感謝, 米哈伊爾

+0

嘗試檢查你得到的消息(從'WndProc'轉儲日誌或使用Spy ++) - 那裏可能有一些信息?雖然沒有使用DirectInput,但鍵盤接口可能只是一個「鍵盤」。 –

+2

我認爲它可能歸結爲掃描儀的模型 - 它可能支持允許發生這種檢測的功能,或者它可能僅僅將窗口虛擬地表示爲鍵盤。你需要檢查具體的文檔。 –

回答

2

條形碼掃描器通常會提供字符的速度遠遠超過人類可以輸入,每10毫秒通常左右。一個不起眼但有效的解決方案是覆蓋OnKeyDownOnKeyPress,並且如果最近發生的事件不久之前發生,則將其視爲由條形碼掃描器輸入的一系列字符。

+0

這是一個可能的解決方案,但我想讓它更笨一些,受到用戶保護。謝謝 – mihail