我正在製作一個處理登錄的健身管理網絡應用程序。會員在他們到達健身房時掃描的標籤上有條形碼。是否可以將條形碼掃描到背景中的一個過程中?
我聽說大多數條碼掃描儀僅充當鍵盤。這將要求在掃描條形碼時掃描輸入頁面處於打開狀態並且處於前景。
如果它只是一個鍵盤,我將如何條形碼掃描器輸入發送到計算機上運行的單個後臺進程,並請有可能成爲市場關注焦點的所有進程忽略?
我正在製作一個處理登錄的健身管理網絡應用程序。會員在他們到達健身房時掃描的標籤上有條形碼。是否可以將條形碼掃描到背景中的一個過程中?
我聽說大多數條碼掃描儀僅充當鍵盤。這將要求在掃描條形碼時掃描輸入頁面處於打開狀態並且處於前景。
如果它只是一個鍵盤,我將如何條形碼掃描器輸入發送到計算機上運行的單個後臺進程,並請有可能成爲市場關注焦點的所有進程忽略?
你說的沒錯,大多數掃描儀可以支持鍵盤仿真HID,但是這僅僅是開始。
如果你想擁有超過您可以使用支持OPOS驅動器模型掃描儀的數據更多的控制。
看看Zebra's Windows SDK有,你可以做的事情一概述。這可能是一種更好的解決方案,它比試圖竊取操作系統中的條形碼數據作爲前臺應用程序的鍵盤輸入。
聲明:我斑馬技術公司工作
其他條形碼掃描儀供應商支持類似的驅動程序模型。
我發現了一個有趣的帖子有一個簡單的解決方案:
在窗體構造
InitializeComponent():
this.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.Form1_KeyPress);
處理器&配套項目:
DateTime _lastKeystroke = new DateTime(0);
List<char> _barcode = new List<char>(10);
private void Form1_KeyPress(object sender, KeyPressEventArgs e)
{
// check timing (keystrokes within 100 ms)
TimeSpan elapsed = (DateTime.Now - _lastKeystroke);
if (elapsed.TotalMilliseconds > 100)
_barcode.Clear();
// record keystroke & timestamp
_barcode.Add(e.KeyChar);
_lastKeystroke = DateTime.Now;
// process barcode
if (e.KeyChar == 13 && _barcode.Count > 0) {
string msg = new String(_barcode.ToArray());
MessageBox.Show(msg);
_barcode.Clear();
}
}
現金@ltiong_sh
原創發佈:Here