全局钩子的安全退出

这篇具有很好参考价值的文章主要介绍了全局钩子的安全退出。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景

最近在写一个鼠标检测工具,需要记录鼠标的按键、滚轮和回报率等信息。

使用方法

使用鼠标全局钩子,捕获鼠标的信息。

具体实现逻辑

1、创建线程;
2、在线程中,注册全局鼠标钩子;
3、鼠标消息捕获;
4、注销全局钩子;
5、退出线程。

核心代码

1、获取线程id
m_threadID = GetCurrentThreadId();

2、注册钩子
m_hHook = SetWindowsHookEx(WH_MOUSE_LL, MouseProc, NULL, 0);

3、捕获消息
GetMessage(&msg, NULL, 0, 0);//这里会一直阻塞

4、消息处理
LRESULT NormalMouse::MouseProc(int nCode, WPARAM wParam, LPARAM lParam)
{
if (nCode >= 0 && wParam == WM_LBUTTONDOWN) {
// 左键按下事件
printf(“左键被按下\n”);
} else if (nCode >= 0 && wParam == WM_LBUTTONUP) {
// 右键按下事件
printf(“左键抬起\n”);
}
// 继续传递事件给下一个钩子或目标窗口
return CallNextHookEx(NULL, nCode, wParam, lParam);
}

5、通知GetMessage退出
PostThreadMessage(m_threadID, WM_QUIT, 0, 0);文章来源地址https://www.toymoban.com/news/detail-448802.html

到了这里,关于全局钩子的安全退出的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 精心打造:使用easyx做界面时,想要鼠标到一个按键时背景颜色发生改变

    我们在用easyx开发小的应用程序时(比如写表白程序doge),感觉很高级,但还要注意一些细节的东西以使我们的程序变得更完美,也让客户(或者你的女朋友)感觉到你的细心以及注意细节,不得不面临一些细节的难题。 这里要说的就是如何使鼠标与界面进行交互,包括以下

    2024年02月09日
    浏览(48)
  • 12.1 使用键盘鼠标监控钩子

    本节将介绍如何使用 Windows API 中的 SetWindowsHookEx 和 RegisterHotKey 函数来实现键盘鼠标的监控。这些函数可以用来设置全局钩子,通过对特定热键挂钩实现监控的效果,两者的区别在于 SetWindowsHookEx 函数可以对所有线程进行监控,包括其他进程中的线程,而 RegisterHotKey 函数只能

    2024年02月08日
    浏览(42)
  • 使用Windows API实现键盘鼠标监控钩子

    本文介绍了如何使用Windows API中的SetWindowsHookEx和RegisterHotKey函数来监控键盘和鼠标活动。特别地,我们将详细讨论RegisterHotKey函数的用法,该函数允许开发者注册全局热键并定义这些热键触发时的行为。

    2024年02月04日
    浏览(50)
  • 【小沐学C++】C++ 实现鼠标键盘钩子HOOK

    https://learn.microsoft.com/zh-cn/windows/win32/winmsg/about-hooks 挂钩是应用程序截获消息、鼠标操作和击键等事件的机制。 截获特定类型的事件的函数称为 挂钩过程。 挂钩过程可以对其接收的每个事件执行操作,然后修改或放弃该事件。 挂钩是系统消息处理机制中的一个点,其中应用

    2024年02月02日
    浏览(44)
  • WindowsAPI——使用Windows API中键盘、鼠标监控钩子

    本节将介绍如何使用 Windows API 中的 SetWindowsHookEx 和 RegisterHotKey 函数来实现键盘鼠标的监控。这些函数可以用来设置全局钩子,通过对特定热键挂钩实现监控的效果,两者的区别在于 SetWindowsHookEx 函数可以对所有线程进行监控,包括其他进程中的线程,而 RegisterHotKey 函数只能

    2024年02月04日
    浏览(42)
  • Unity3D Button 鼠标悬浮进入与鼠标悬浮退出按钮事件

    由于甲方验收未通过,项目需要改版,在修改界面时,想实现鼠标在一级菜单悬浮即可显示二级菜单的功能,主要如下图 注意,上图鼠标只是悬浮在场景漫游按钮上,并未点击左键或右键等 思路是让类继承IPointerEnterHandler IPointerExitHandler两个接口,然后实现其中的方法 代码如

    2024年02月16日
    浏览(49)
  • Qt鼠标点击事件处理:按Escape键退出程序

    Qt 入门实战教程(目录) 首先,创建一个名称为QtKeyEscape的Qt默认的窗口程序。 参考 :Qt Creator 创建 Qt 默认窗口程序 打开Qt Creator 编辑 项目 Headers mainwindow.h 右键 class MainWindow Refactor Insert Virtual Function of Base Classes 如下图所示: 选择 QWidget keyPressEvent Insertion options: Insert defini

    2024年02月09日
    浏览(36)
  • vue 设置全局鼠标移动事件

    要设置全局鼠标移动事件,可以使用 Vue 的 mixin 实现。在 mixin 中,我们可以使用 $on 方法监听 mousemove 事件,并在组件销毁时使用 $off 方法移除监听器,以避免内存泄漏。以下是一个例子: 这样,每个组件都可以使用全局鼠标移动事件,而不需要在每个组件中单独设置。

    2024年02月09日
    浏览(33)
  • 鼠标指针经过时背景变色

    目录 一、如何使用鼠标指针经过时背景变色? 二、使用步骤 1.CSS(表格的样式) 2.表格(5行7列的一个表格) 2.Script部分(实现鼠标指针经过时背景变色效果) 总结 提示:以下是本篇文章正文内容,下面案例可供参考 在之前学习css的时候也学过hover的使用也可以进行该操作

    2024年02月12日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包