全局鉤子和局部鉤子

蒐集了許多的資料,也作了各類嘗試,可是還不是很明白具體的分類.html

根據目前所掌握的總結一下:windows

局部鉤子:函數

SetWindowsHookEx(User32.HookType.WH_KEYBOARD, MouseHookProced,0, AppDomain.GetCurrentThreadId());

注意事項:第一個參數是WH_KEYBOARD相似的局部鉤子參數,spa

第二個是回調函數,能夠再當前DLL(exe)中也能夠在其餘的DLL中線程

第三個參數可設爲0就能夠,多是忽略這個參數了吧.code

第四個參數是當前線程的ID,只在當前線程中有效.htm

 

全局鉤子:blog

hHook = SetWindowsHookEx(User32.HookType.WH_KEYBOARD_LL, MouseHookProced, (IntPtr)0, 0);

第三個參數仍是能夠設置爲0,get

第四個參數必須設爲0,即設置爲全局鉤子回調函數

一直想找到一個能夠使用WH_KEYBOARD設置全局鉤子的方法,過程當中也設置了第三個參數,DLL的HID,可是hHook都是0,設置失敗.應該有這樣的方法的,再找找.

有的資料也說net不支持.

參考資料: http://www.cnblogs.com/firstyi/archive/2008/01/08/1030761.html

等..

 

鍵盤鉤子:

局部鉤子:

KeyboardProc參數解析 

首先根據nCode過濾

當使用WH_KEYBOARD設置局部鉤子的時候,wParam就是按下的鍵碼.lParam是Keystroke Message Flags,每一位表明一個標誌位.能夠使用Convert.ToString((int)lParam,2)裝換爲二進制,判斷是否夠32位,不夠的話補0,而後讀取想要的信息.如:10011110000000000000001,能夠獲取是按下仍是彈起.KeyboardProc callback function.第一位是0表示按下,是1表示彈起.

 

全局鉤子:

LowLevelKeyboardProc 

WPARAM包含彈起和按下的信息,ncode是0,lparam是一個KBDLLHOOKSTRUCT ,具體信息參考鏈接.

相關文章
相關標籤/搜索