博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
qt捕获全局windows消息
阅读量:6816 次
发布时间:2019-06-26

本文共 676 字,大约阅读时间需要 2 分钟。

,这个帖子上面主要讲述了下嵌入式qt怎么抓取系统级消息,不过从这篇文章中我也看到了希望,有个回复说winEventFilter支持这种方式,然后我就顺着这个线索找到了nativeEventFilter方法,最终试验成功。

首先是让你自己的类继承自QAbstractNativeEventFilter,然后通过QCoreApplication来注册你的窗口类,代码如下:
app.installNativeEventFilter(m_MainWindow);
最后在nativeEventFilter方法中就能获取到系统级事件,我的qt5.5.观看qt的帮助文档,如图1所示

图1

 

bool CCailianMainWindow::nativeEventFilter(const QByteArray & eventType, void * message, long * result)
{
    if (eventType == "windows_generic_MSG" || eventType == "windows_dispatcher_MSG")
    {
        MSG * pMsg = reinterpret_cast<MSG *>(message);
        if (pMsg->message == WM_NCMOUSEMOVE)
        {
            //获取到系统鼠标移动,可以做像qq一样的忙碌检测
        }
    }
    return false;
}
调试结果如图2所示

图2

 

转载于:https://www.cnblogs.com/swarmbees/p/5632765.html

你可能感兴趣的文章
PHP OO 编程笔记
查看>>
高级程序员职责
查看>>
setFocusable、setEnabled、setClickable区别
查看>>
分布系统概念与设计---系统模型
查看>>
核心基础以及Fragment与Activity传递数据完整示例
查看>>
解决网站出错后 跳转 友好页面 的 asp .net 配置
查看>>
【趣事】一根网线发起的攻击
查看>>
如何判断CapsLock键是否按下
查看>>
微软职位内部推荐-Software Development Engineer II
查看>>
在Ubuntu 14 上安装 Nginx-RTMP 流媒体服务器
查看>>
2015年4月与5月
查看>>
C++ 二叉树遍历实现
查看>>
分享一下刚刚HP电话面试。。。。。。。。我估计我挂了,不过还是要来分享一下...
查看>>
[mysql] linux下使用yum安装mysql
查看>>
Android异步处理系列文章四篇之四 AsyncTask的实现原理
查看>>
android-betterpickers
查看>>
linux -- Ubuntu开启root账户,并切换到root用户登陆
查看>>
直接插入排序法
查看>>
SQL Server :理解IAM 页
查看>>
索引深入浅出(0/10):索引深入浅出的聚集索引页
查看>>