鍵盤鈎子實現掃碼槍輸入


鈎子

鈎子是操作系統消息處理的一種機制。通過鈎子,應用程序可以安裝一個鈎子回調過程讓系統調用,從而監視系統中的消息隊列。在這些消息到達目標窗口之前對這些消息進行處理。

特點

  • 鈎子函數會降低操作系統的性能,因為它增加系統處理每一個消息的開銷。

  • 操作系統支持多種類型的鈎子,每種類型都提供了它特有的消息處理機制。

  • 對於每種類型的鈎子,系統都維護一個各自獨立的鈎子鏈,鈎子鏈是一個指向用戶提供的回調函數鈎子過程的鏈表指針。

  • 鈎子盡量避免大量使用,對於一個鈎子,一般是需要的時候安裝,使用完成后,盡快卸載。

函數

鍵盤鈎子的使用是基於Windows自帶的dll,Windows API中的所有函數都包含在dll中。

3個最重要的DLL是:

1)kernel32.dll : 包含用於管理內存、進程和線程的各個函數

2)User32.dll : 包含用於執行用戶界面任務的(如窗口創建和消息傳送)的各個函數

3)GDI32.dll : 包含用於畫圖和現實文本的各個函數

使用

之所以要使用鍵盤鈎子,主要是工業上有很多掃碼槍是通過獲取焦點,自動掃碼的。但是如果想要實現無焦點輸入,就需要使用鍵盤鈎子,將鍵盤鈎子的代碼封裝成了一個類,這樣使用就非常簡單了,使用代碼如下:

1、創建鈎子對象

 

 2、鈎子創建及卸載

 

 3、獲取條碼

 

 

實現

 

 

代碼

需要代碼的小伙伴,點個贊吧!

然后公眾號:dotNet工控上位,后台回復關鍵詞:鈎子

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM