HHOOK hook = SetWindowsHookEx(WH_KEYBOARD_LL,LowLevelKeyboardProc,GetModuleHandle(NULL),0);
//WH_KEYBOARD 在应用程序中,WH_KEYBOARD Hook用来监视WM_KEYDOWN and WM_KEYUP消息,这些消息通过GetMessage or PeekMessage function返回。可以使用这个Hook来监视输入到消息队列中的键盘消息。
//HookProc是回调函数名。
//nCode参数是Hook代码,Hook子程使用这个参数来确定任务。这个参数的值依赖于Hook类型,每一种Hook都有自己的Hook代码特征字符集。
//wParam和lParam参数的值依赖于Hook代码,但是它们的典型值是包含了关于发送或者接收消息的信息。
LRESULT CALLBACK HookProc(int nCode,WPARAM wParam,LPARAM lParam ){
if(!nCode){
printf("%d %d %d %d %d %d %d %d %d %d",
((PMSG)lParam)->hwnd,
((PMSG)lParam)->lParam,
((PMSG)lParam)->message,
((PMSG)lParam)->pt,
((PMSG)lParam)->time,
((PMSG)lParam)->wParam,
((PCWPSTRUCT)lParam)->hwnd,
((PCWPSTRUCT)lParam)->lParam,
((PCWPSTRUCT)lParam)->message,
((PCWPSTRUCT)lParam)->wParam
);
}
return CallNextHookEx(hook,nCode,wParam,lParam);
}
//PMSG 介绍 : http://msdn.microsoft.com/zh-cn/dynamics/ms644958%28v=vs.80%29.aspx
/*
hwnd
Type: HWND
句柄到窗口的窗口过程接收消息。该成员为NULL时,该消息是一个线程的消息。
message
Type: UINT
消息标识符。应用程序只能使用低字;高字被系统保留。
wParam
Type: WPARAM
有关消息的其他信息。的确切含义取决于消息成员的值。
lParam
Type: LPARAM
有关消息的其他信息。的确切含义取决于消息成员的值。
time
Type: DWORD
在该消息发布的时间。
pt
Type: POINT
光标位置,在屏幕坐标,当消息被张贴。
*/
//CWPSTRUCT介绍 http://msdn.microsoft.com/zh-cn/biztalk/ms644964%28v=vs.80%29
/*
lParam
Type: LPARAM
有关消息的其他信息。的确切含义取决于消息值。
wParam
Type: WPARAM
有关消息的其他信息。的确切含义取决于消息值。
message
Type: UINT
该消息。
hwnd
Type: HWND
来接收消息的窗口句柄
*/

0 条评论