天天看點

鍵盤鈎子實作掃碼槍輸入

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

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

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

對于每種類型的鈎子,系統都維護一個各自獨立的鈎子鍊,鈎子鍊是一個指向使用者提供的回調函數鈎子過程的連結清單指針。

鈎子盡量避免大量使用,對于一個鈎子,一般是需要的時候安裝,使用完成後,盡快解除安裝。

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

3個最重要的DLL是:

1)kernel32.dll : 包含用于管理記憶體、程序和線程的各個函數

2)User32.dll : 包含用于執行使用者界面任務的(如視窗建立和消息傳送)的各個函數

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

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

1、建立鈎子對象

鍵盤鈎子實作掃碼槍輸入

 2、鈎子建立及解除安裝

鍵盤鈎子實作掃碼槍輸入

 3、擷取條碼

鍵盤鈎子實作掃碼槍輸入
鍵盤鈎子實作掃碼槍輸入

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

然後公衆号:dotNet工控上位,背景回複關鍵詞:鈎子