您的位置:首页 > 其它

一个拦截系统消息的钩子程序事例

2011-07-29 17:29 260 查看
//一个拦截系统消息的钩子程序事例

static LRESULT CALLBACK LowLevelKeyboardProc(int nCode, WPARAM wParam, LPARAM lParam);

BOOL C**App::InitInstance()

{

HHOOK hhkKybd = SetWindowsHookEx(WH_KEYBOARD_LL, LowLevelKeyboardProc,

AfxGetApp()->m_hInstance, 0);

///...///

InitCommonControls();

CWinApp::InitInstance();

///...///

return TRUE;

}

LRESULT CALLBACK LowLevelKeyboardProc(int nCode, WPARAM wParam, LPARAM lParam)

{

PKBDLLHOOKSTRUCT p = (PKBDLLHOOKSTRUCT) lParam;

if (nCode == HC_ACTION)

{

int vKey = LOBYTE(p->vkCode);

//如果为键盘消息

if (wParam == WM_KEYDOWN)

{

switch(vKey)

{

case 'd':

case 'D':

{

//如果用户按下了Win + D键盘消息

if(::GetKeyState(VK_LWIN) < 0)

{

///do anything here///

}

}

}

}

return CallNextHookEx(NULL, nCode, wParam, lParam);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: