b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

翻MSDN可知鼠标钩子类型有两个,另一个是WH_MOUSE_LL

电脑杂谈  发布时间:2021-05-24 18:01:15  来源:网络整理

从MSDN中可以看到,有两种类型的鼠标钩,一种是WH_MOUSE,另一种是WH_MOUSE_LL,

关于它们之间的区别,百度给了它一点:

1. WH_MOUSE仅可以监视挂钩所在模块的鼠标事件。

2. WH_MOUSE_LL可以拦截整个系统所有模块的鼠标事件。

--------------------------------------------------- -------------------------------------------------- ------------------------------------

我在这里测试了WH_MOUSE_LL。毕竟,它更强大。文章结尾给出了VS2008源代码和最终产品下载地址。

//效果截图如下:

系统钩子 截获鼠标

系统钩子 截获鼠标_鼠标钩子 下载_鼠标钩子控制鼠标位置

--------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -

安装鼠标钩子和卸载钩子相对简单。我不会在这里详细介绍。这里最主要的是如何使dll和主程序正常工作。

通信毕竟,我们的鼠标钩存在于dll文件中,并且在dll文件中也实现了鼠标事件的捕获。我们如何整合

我们如何将捕获的鼠标消息告知主程序?也就是说,如何在对话框中显示捕获的鼠标消息?

--------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -

在这里,我们通过发送消息使dll与主程序进行通信。也就是说,在捕获鼠标消息后,我们会将其发送到

主程序,在收到消息后,主程序将其显示在程序界面上。为了向主程序发送消息,请在主程序中调用安装程序

在鼠标挂钩的功能中,我们通过参数将主窗口的句柄传递给dll,以便我们可以向主程序发送消息。

让我们谈谈实施步骤。

--------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -----

一、让我们先谈谈dll程序

1.在dll程序中自定义消息,如下所示:

#define WM_MYMSG WM_USER + 305 //自定义消息,用于与主程序进行通信

2.在钩子安装功能中,保存主程序的窗口句柄,代码如下:

BOOL WINAPI StartHookMouse(HWND hWnd)
{
	g_hWnd=hWnd;
	hhkMouse=::SetWindowsHookEx(WH_MOUSE_LL,LowLevelMouseProc,g_hInstDll,0);
	if (hhkMouse==NULL)
	{
		return FALSE;
	} 
	else
	{
		return TRUE;
	}
}

3.在鼠标钩子响应功能中,我们将捕获的消息发送到主程序,代码如下:

鼠标钩子 下载_系统钩子 截获鼠标_鼠标钩子控制鼠标位置

//低级鼠标钩子过程
LRESULT CALLBACK LowLevelMouseProc(
						   int nCode,      // hook code
						   WPARAM wParam,  // message identifier
						   LPARAM lParam   // mouse coordinates
						   )
{
	//有鼠标消息时,将其发给主程序
	if (g_hWnd!=NULL&&nCode==HC_ACTION)
	{
		::SendMessage(g_hWnd,WM_MYMSG,wParam,lParam);
	}
	return CallNextHookEx(hhkMouse,nCode,wParam,lParam);
}

--------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------

以上是dll程序的主要部分。接下来,在主程序中,我们在dll中调用钩子安装函数,并将窗口句柄传递给

在dll中,是时候在dll中处理我们的自定义消息了。主要步骤如下:

1.安装鼠标钩时,它将其窗口句柄传递给dll,主要代码为:

StartHook(this-> m_hWnd);

2.在主程序的头文件中,我们还需要自定义一条消息,并且该消息必须定义为与dll中定义的消息相同,否则它将

无法从dll接收消息。

#define WM_MYMSG WM_USER + 305 //自定义消息,用于处理dll发送的消息,该消息的定义应与dll中定义的消息完全相同


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/bofangqi/article-377803-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 王瑞芳
        王瑞芳

        然后一半利息移民养家

      热点图片
      拼命载入中...