疯狂飞艇

当前位置:疯狂飞艇 > IT教程

Windows编程之键盘鼠标钩子

时间:2021-01-03 13:05:23来源:金橙教程网 作者:admin8 阅读:79次
 

鼠标钩子

以一个简单的钩子程序为例,屏蔽所有键盘鼠标消息,按下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开发的轨迹球,有左、中、右三个按键。每次按下任一按键,电脑无响应,需再按下另一按键后,之前的按键才有响应。经测试,正确

鼠标没反应,小编告诉你怎么解决鼠标没反应

有的时候我们用鼠标打开一些软件的时候,会发现明明点了却没有反应。那这是什么原因呢?其实这有可能是因为鼠标没有反应,那么该怎么来

个性鼠标指针下载

追求个性是年轻人的潮流,不管是在生活中还是在网络上。小编今天给大家带来一款超级能彰显个性的软件&mdash;&mdash;个性鼠标指针下

电脑鼠标亮着灯却没反应怎么办?

昨天鼠标明明亮着灯,突然就没有了反应,以为坏掉了,后来不死心的捣鼓了好长时间,又变正常了,那叫一个开心哇!接下来,大家可以看看我的方法

鼠标加速,教您鼠标加速怎么关

鼠标就是电脑的得力干将,因为我们在电脑上的操作有百分之四十多都需要靠鼠标才能完成的。所以鼠标对于我们来说是占据着十分重要的

分享到:

IT相关

程序相关

推荐文章

热门文章

疯狂飞艇官网疯狂飞艇网址疯狂飞艇平台疯狂飞艇app疯狂飞艇下载