vc++底层键盘钩子怎么用。
我在网上找了一个底层键盘钩子的dll源码,但是我不会用dll,我在网上查的方法但不成功,是不是dll也要改啊?有用的话再加悬赏。...
我在网上找了一个底层键盘钩子的dll源码,但是我不会用dll,我在网上查的方法但不成功,是不是dll也要改啊?有用的话再加悬赏。
展开
1个回答
展开全部
直接把下面代码写在程序裏就可以了,不用写在dll裏。
低级鼠标钩子和低级键盤钩子 比较特殊,都可以直接写在程序裏的。
/****************************************************************************
低级键盘钩子
#define _WIN32_WINNT 0x0500 //必须在stdafx.h中添加这一句
****************************************************************************/
HHOOK g_LowLevelKeyboardHook=NULL; //钩子句柄
LRESULT CALLBACK LowLevelKeyboardProc(int nCode,WPARAM wParam, LPARAM lParam)
{
if (nCode<0 )
return CallNextHookEx(g_LowLevelKeyboardHook,nCode,wParam,lParam);
if (wParam==WM_KEYDOWN)
{
trace( ((KBDLLHOOKSTRUCT*)lParam )->vkCode );
if ( ((KBDLLHOOKSTRUCT*)lParam )->vkCode == VK_F1 )
{
return 1;
}
}
return CallNextHookEx(g_LowLevelKeyboardHook,nCode,wParam,lParam); //传递钩子信息
}
//start Low Level Keyboard hook
g_LowLevelKeyboardHook=SetWindowsHookEx(WH_KEYBOARD_LL,LowLevelKeyboardProc,GetModuleHandle(NULL),0);
if(!g_LowLevelKeyboardHook)
::MessageBox(m_hWnd,TEXT("SetWindowsHookEx LowLevelKeyboardProc failed"),NULL,MB_OK);
低级鼠标钩子和低级键盤钩子 比较特殊,都可以直接写在程序裏的。
/****************************************************************************
低级键盘钩子
#define _WIN32_WINNT 0x0500 //必须在stdafx.h中添加这一句
****************************************************************************/
HHOOK g_LowLevelKeyboardHook=NULL; //钩子句柄
LRESULT CALLBACK LowLevelKeyboardProc(int nCode,WPARAM wParam, LPARAM lParam)
{
if (nCode<0 )
return CallNextHookEx(g_LowLevelKeyboardHook,nCode,wParam,lParam);
if (wParam==WM_KEYDOWN)
{
trace( ((KBDLLHOOKSTRUCT*)lParam )->vkCode );
if ( ((KBDLLHOOKSTRUCT*)lParam )->vkCode == VK_F1 )
{
return 1;
}
}
return CallNextHookEx(g_LowLevelKeyboardHook,nCode,wParam,lParam); //传递钩子信息
}
//start Low Level Keyboard hook
g_LowLevelKeyboardHook=SetWindowsHookEx(WH_KEYBOARD_LL,LowLevelKeyboardProc,GetModuleHandle(NULL),0);
if(!g_LowLevelKeyboardHook)
::MessageBox(m_hWnd,TEXT("SetWindowsHookEx LowLevelKeyboardProc failed"),NULL,MB_OK);
追问
低级键盘钩子可以屏蔽按键吗?
追答
可以的啊!你返回1 就屏蔽掉了1
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询