如何知道发送消息的进程?

解决方案 »

  1.   

    如果消息是自定义消息,那么你可以在消息参数中
    传递发送者的句柄
    如果是Windows标准消息,那就没有办法了
      

  2.   

    救命
    如果非要RMB来解决我只有200
    分只有15XX分。
      

  3.   

    应该有办法的,既然有ReplyMessage,应该有办法能得到。只是我不知道
      

  4.   

    消息是从任意一个程序来的。
    有方法可以知道一个进程是否发过消息吗?
    用GETMESSAGE或PEEKMESSAGE好象不行
      

  5.   

    这样确定:
    MSG.hwnd->实例(进程)。
      

  6.   

    看来只有一个办法了
    挂接API,把PostMessage及衍生的API函数拦截
    这样你可以记录下发送特定消息的进程句柄
    实现起来稍稍有点麻烦,但是很有效和可行
      

  7.   

    njtu_shiyl(玉晶) 
    你那个是目的地
      

  8.   

    我也想过挂API,不过通用性好像有问题,我就干脆挂了WH_CALLWNDPROCRET,
    WH_CALLWNDPROC,两个钩子进入修改控件的参数,输出改回去。但老判断不了这个消息是不是本进程发出的。
    用PEEKMESSAGE的PM_QS_SENDMESSAGE参数读队列就读不了,返回FALSE。