C++:利用全局鉤子實現鍵盤鎖

在家看網課,記筆記不方便。因而就想弄個鍵盤鎖,方便學習(在寢室也好把外接鍵盤放上去打遊戲)。ide

其實這東西挺簡單的,就三行代碼。函數

HHOOK hk;
LRESULT CALLBACK kbproc(int nCod, WPARAM wParam, LPARAM lParam);

void CMFCApplication1Dlg::OnBnClickedButton1()
{    
    hk = SetWindowsHookEx(WH_KEYBOARD_LL, kbproc, 0, 0);//安裝全局鉤子
    
}

void CMFCApplication1Dlg::OnBnClickedButton2()
{
    UnhookWindowsHookEx(hk);//卸載鉤子
    
}

LRESULT CALLBACK kbproc(int nCod, WPARAM wParam, LPARAM lParam)
{
    return 1;//返回一表示消息已經處理過了,應用程序就不會再處理了,至關於屏蔽消息
}
View Code

下面我來講下鉤子是怎麼回事:
正常狀況下,咱們在屏幕上的任何動做都會由操做系統生成待處理的消息,而後將它放入消息隊列中等待程序處理。
以下圖:學習

 

而HOOK就至關因而在操做系統和消息隊列之間的一個劫匪,先經由它處理,而後這些東西纔會被放入消息隊列。
以下圖:
spa

 

 若是你只想屏蔽一些按鍵的話,回調函數就不能返回1,應該返回下一個鉤子。代碼以下:操作系統

//do something
return CallNextHookEx(hk, nCod, 0, 0);
相關文章
相關標籤/搜索