Jet_likemian 2021-12-03 09:50 采纳率: 0%
浏览 78
已结题

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日

    悬赏问题

    • ¥20 高德地图聚合图层MarkerCluster聚合多个点,但是ClusterData只有其中部分数据,原因应该是有经纬度重合的地方点,现在我想让ClusterData显示所有点的信息,如何实现?
    • ¥100 求Web版SPC控制图程序包调式
    • ¥20 指导如何跑通以下两个Github代码
    • ¥15 大家知道这个后备文件怎么删吗,为啥这些文件我只看到一份,没有后备呀
    • ¥15 C++为什么这个代码没报错运行不出来啊
    • ¥15 一道ban了很多东西的pyjail题
    • ¥15 关于#r语言#的问题:如何将生成的四幅图排在一起,且对变量的赋值进行更改,让组合的图漂亮、美观@(相关搜索:森林图)
    • ¥15 C++识别堆叠物体异常
    • ¥15 微软硬件驱动认证账号申请
    • ¥15 GPT写作提示指令词