普通网友 2021-12-03 13:55 采纳率: 66.7%
浏览 10
已结题

SetWindowHookEx, 截获窗口消息,WH_CALLWNDPROC,tagCWPSTRUCT参数解析

问题遇到的现象和发生背景

tagCWPSTRUCT 结构如果拆解 ?

问题相关代码,请勿粘贴截图
LRESULT Widget::HookMessageProc(int nCode, WPARAM wParam, LPARAM lParam)
{
    // 一般来说,所有运行的进程(有窗口过程的)都会加载这个 钩子过程了
    if (nCode >= HC_ACTION)
    {
        tagCWPSTRUCT* tagCwp = (tagCWPSTRUCT*)lParam;
        QString str = QString("handle =%1,message=%2,lp=%3,lw=%4").arg(QString::number((int)tagCwp->hwnd)).arg(QString::number(tagCwp->message)).arg(QString::number(tagCwp->lParam)).arg(QString::number(tagCwp->wParam));
        QFile file("d:\\text.txt");
        file.open(QIODevice::WriteOnly | QIODevice::Text|QIODevice::Append);
        file.write(str.toUtf8()+"\n");
        file.close();
        return 0;
    }
    return CallNextHookEx(g_wndHook, nCode, wParam, lParam);
}
SetWindowsHookEx(WH_CALLWNDPROC, HookMessageProc, hApp1, GetCurrentThreadId());
运行结果及报错内容

以下是Text文件中的内容:

handle =2426644,message=36,lp=368934118416,lw=0
handle =2426644,message=129,lp=368934118336,lw=0
handle =2426644,message=70,lp=368934114496,lw=0
handle =2426644,message=131,lp=368934114448,lw=1
handle =2426644,message=71,lp=368934114496,lw=0
handle =2426644,message=3,lp=29950894,lw=0
handle =2426644,message=5,lp=32506532,lw=0
handle =2426644,message=127,lp=0,lw=2
handle =2426644,message=127,lp=0,lw=0
handle =2426644,message=127,lp=0,lw=1
handle =199294,message=129,lp=368934118336,lw=0
handle =199294,message=131,lp=368934118448,lw=0
handle =199294,message=1,lp=368934118336,lw=0
handle =199294,message=5,lp=0,lw=0
handle =199294,message=3,lp=0,lw=0
handle =199294,message=647,lp=0,lw=33
handle =2426644,message=131,lp=368934118448,lw=0
handle =2426644,message=1,lp=368934118288,lw=0
handle =2426644,message=5,lp=32506532,lw=0
handle =2426644,message=3,lp=29950894,lw=0
handle =2426644,message=70,lp=368934120560,lw=0
handle =2426644,message=131,lp=368934120512,lw=1
handle =2426644,message=71,lp=368934120560,lw=0
handle =2426644,message=128,lp=0,lw=0
handle =2426644,message=128,lp=0,lw=1
我的解答思路和尝试过的方法

我将窗口产生的消息,保存到Text文件里面,方便分析 .

我想要达到的结果

问题是如何拆解 IParam,与WParam 里面的消息? Message的值又表示什么意思呢?

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 12月11日
    • 创建了问题 12月3日

    悬赏问题

    • ¥15 phython路径名过长报错 不知道什么问题
    • ¥15 深度学习中模型转换该怎么实现
    • ¥15 HLs设计手写数字识别程序编译通不过
    • ¥15 Stata外部命令安装问题求帮助!
    • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
    • ¥15 TYPCE母转母,插入认方向
    • ¥15 如何用python向钉钉机器人发送可以放大的图片?
    • ¥15 matlab(相关搜索:紧聚焦)
    • ¥15 基于51单片机的厨房煤气泄露检测报警系统设计
    • ¥15 Arduino无法同时连接多个hx711模块,如何解决?