1. 程式人生 > 其它 >鍵盤鉤子實現掃碼槍輸入

鍵盤鉤子實現掃碼槍輸入

鉤子

鉤子是作業系統訊息處理的一種機制。通過鉤子,應用程式可以安裝一個鉤子回撥過程讓系統呼叫,從而監視系統中的訊息佇列。在這些訊息到達目標視窗之前對這些訊息進行處理。

特點

  • 鉤子函式會降低作業系統的效能,因為它增加系統處理每一個訊息的開銷。

  • 作業系統支援多種型別的鉤子,每種型別都提供了它特有的訊息處理機制。

  • 對於每種型別的鉤子,系統都維護一個各自獨立的鉤子鏈,鉤子鏈是一個指向使用者提供的回撥函式鉤子過程的連結串列指標。

  • 鉤子儘量避免大量使用,對於一個鉤子,一般是需要的時候安裝,使用完成後,儘快解除安裝。

函式

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

3個最重要的DLL是:

1)kernel32.dll : 包含用於管理記憶體、程序和執行緒的各個函式

2)User32.dll : 包含用於執行使用者介面任務的(如視窗建立和訊息傳送)的各個函式

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

使用

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

1、建立鉤子物件

2、鉤子建立及解除安裝

3、獲取條碼

實現

程式碼

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

然後公眾號:dotNet工控上位,後臺回覆關鍵詞:鉤子