鈎子
鈎子是操作系統消息處理的一種機制。通過鈎子,應用程序可以安裝一個鈎子回調過程讓系統調用,從而監視系統中的消息隊列。在這些消息到達目標窗口之前對這些消息進行處理。
特點
-
鈎子函數會降低操作系統的性能,因為它增加系統處理每一個消息的開銷。
-
操作系統支持多種類型的鈎子,每種類型都提供了它特有的消息處理機制。
-
對於每種類型的鈎子,系統都維護一個各自獨立的鈎子鏈,鈎子鏈是一個指向用戶提供的回調函數鈎子過程的鏈表指針。
-
鈎子盡量避免大量使用,對於一個鈎子,一般是需要的時候安裝,使用完成后,盡快卸載。
函數
鍵盤鈎子的使用是基於Windows自帶的dll,Windows API中的所有函數都包含在dll中。
3個最重要的DLL是:
1)kernel32.dll : 包含用於管理內存、進程和線程的各個函數
2)User32.dll : 包含用於執行用戶界面任務的(如窗口創建和消息傳送)的各個函數
3)GDI32.dll : 包含用於畫圖和現實文本的各個函數
使用
之所以要使用鍵盤鈎子,主要是工業上有很多掃碼槍是通過獲取焦點,自動掃碼的。但是如果想要實現無焦點輸入,就需要使用鍵盤鈎子,將鍵盤鈎子的代碼封裝成了一個類,這樣使用就非常簡單了,使用代碼如下:
1、創建鈎子對象
2、鈎子創建及卸載
3、獲取條碼
實現
代碼
需要代碼的小伙伴,點個贊吧!
然后公眾號:dotNet工控上位,后台回復關鍵詞:鈎子