鼠标钩子
以一个简单的钩子程序为例,屏蔽所有键盘鼠标消息,按下F1停止钩子
#include<windows.h>
HHOOK hook,hook2;
LRESULT CALLBACK kbdProc(int code, WPARAM wParam, LPARAM lParam);
int WINapi WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpcmdShow,int iCmdLine)
{
HINSTANCE Hinstance;
Hinstance = GetModuleHandle(text("user32.dll"));
if (Hinstance == NULL)
{
MessageBox(NULL, TEXT("没找到啊!"), TEXT("没找到"), 0);
}
hook=SetWindowsHookEx(WH_KEYBOARD_LL, kbdProc, Hinstance, NULL);
hook2 = SetWindowsHookEx(WH_MOUSE_LL, kbdProc, Hinstance, NULL);
MSG msg;
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
UnhookWindowsHookEx(hook);
UnhookWindowsHookEx(hook2);
return (int)msg.wParam;
}
LRESULT CALLBACK kbdProc(int code, WPARAM wParam, LPARAM lParam)
{
if (code != HC_ACTION)
{
return 1;
}
if (wParam == WM_LBUTTONDOWN || wParam == WM_MOUSEMOVE || wParam == WM_RBUTTONDOWN || wParam == WM_RBUTTONUP || wParam == WM_LBUTTONUP)
{
return 1;
}
PKBDLLHOOKSTRUCT param = (PKBDLLHOOKSTRUCT)lParam;
if (param->vkCode == VK_F1)
{
PostQuitMessage(0);
}
else
{
return 1;
}
return CallNextHookEx(hook, code, wParam, lParam);
}
代码不多说,以后再完善。
相关阅读
用C8051F380开发的轨迹球,有左、中、右三个按键。每次按下任一按键,电脑无响应,需再按下另一按键后,之前的按键才有响应。经测试,正确
有的时候我们用鼠标打开一些软件的时候,会发现明明点了却没有反应。那这是什么原因呢?其实这有可能是因为鼠标没有反应,那么该怎么来
追求个性是年轻人的潮流,不管是在生活中还是在网络上。小编今天给大家带来一款超级能彰显个性的软件——个性鼠标指针下
昨天鼠标明明亮着灯,突然就没有了反应,以为坏掉了,后来不死心的捣鼓了好长时间,又变正常了,那叫一个开心哇!接下来,大家可以看看我的方法
鼠标就是电脑的得力干将,因为我们在电脑上的操作有百分之四十多都需要靠鼠标才能完成的。所以鼠标对于我们来说是占据着十分重要的