1,221
社区成员
发帖
与我相关
我的任务
分享
static HWND hwnd; // MainForm句柄
static HHOOK hKeyHook; // HOOK句柄
CKeyHook::CKeyHook(HWND hWnd)
{
hwnd = hWnd;
hKeyHook = SetWindowsHookEx( WH_KEYBOARD_LL,(HOOKPROC)_HookProc,GetModuleHandle(NULL),0);
}
//----------------------------------------------------------------------------------------------------
LRESULT CALLBACK CKeyHook::_HookProc(int code,WPARAM wParam,LPARAM lParam)
{
PKBDLLHOOKSTRUCT pKey ;
if((code==HC_ACTION) )
{
pKey = (PKBDLLHOOKSTRUCT)(lParam);
if((wParam==WM_KEYDOWN))
{
// pKey = (PKBDLLHOOKSTRUCT)(lParam);
if(VK_ESCAPE == pKey->vkCode )
{
PostMessage( hwnd,MYESC,wParam,pKey->vkCode);
return CallNextHookEx(hKeyHook,code,wParam,lParam);
}
//SHIFT + F12
if((GetKeyState(VK_CONTROL) < 0) && (GetKeyState(VK_MENU) < 0))
{
// pKey = (PKBDLLHOOKSTRUCT)(lParam);
PostMessage( hwnd,OTHER_BORD,wParam,pKey->vkCode);
return CallNextHookEx(hKeyHook,code,wParam,lParam);
}
//SHIFT + SPACE
if((GetKeyState(VK_SHIFT) < 0))
{
// pKey = (PKBDLLHOOKSTRUCT)(lParam);
PostMessage( hwnd,INSERT_SPACE,wParam,pKey->vkCode);
return CallNextHookEx(hKeyHook,code,wParam,lParam);
}
}
else if((wParam==WM_KEYUP))
{
if(VK_F6 == pKey->vkCode )
{
PostMessage( hwnd,CUTIMAGE,wParam,pKey->vkCode);
return CallNextHookEx(hKeyHook,code,wParam,lParam);
}
}
}
return CallNextHookEx(hKeyHook,code,wParam,lParam);
}