我Hook了WH_CALLWNDPROC消息,目的是监控一个第三方程序窗口的创建。
但我不知道哪个消息表明整个窗口加载完毕。那个窗口上还有其他一些控件。
WM_CREATE?
WM_ACTIVATE?
WM_SHOWWINDOW?因为我要判断目标窗口加载完毕后,用程序控制点击窗口上一个按钮进行打印预览。
这个打印预览按钮我必须判断整个窗口加载完毕才能点,否则由于数据的原因,有可能会出错。
我现在可以得到这个窗口上所有元素的句柄,包括进程句柄,但我就是不知道
1、怎么判断整个窗口加载完毕,
2、不知道该怎么(在哪里)触发我的一个方法,在这个方法里,我会通过向那个打印预览按钮发点击消息,来触发点击事件。

解决方案 »

  1.   

    Create的时候加载,Show的时候加载完毕,Activate的时候激活
      

  2.   

    Self.Show吧  一般是这个...
      

  3.   

    Auronline :你根本就不明白我问的是什么。
    Corn1 : 如果在Hook到Show消息里,执行的我方法,会导致目标窗口关闭,然后弹出打印预览窗口。这个时候,我是不是继续CallNextHookEx呢?
      

  4.   

    疑问回答
    不是紧接着 
    showmodal后 一定要等到返回result,关闭窗体之后才会,执行后面的代码
      

  5.   

    疑问回答
    不是紧接着 
    showmodal后 一定要等到返回result,关闭窗体之后才会,执行后面的代码
      

  6.   

    HOOK WH_SHELL
    判断nCode值是否为   HSHELL_WINDOWCREATED
      

  7.   

    我认为是 WM_CREATE
    加载完毕不一定就可见,也不一定就激活。
      

  8.   

    肯定不是WM_CREATE,因为窗口上的其他子窗体(控件)也会有WM_CREATE消息
      

  9.   

    拿到WM_SHOW之后Post一个自定义消息,等到收到该消息后再点按钮
      

  10.   

    楼上所有回答,就没有一个人能说清楚的。
    Delphi版高手都睡觉了