一个外部程序,是用c++builder做的,该程序的一个子窗体中有一个panel控件,panel上有几个label,现在我需要获取这几个label的caption值。目前按层次关系可以获取到panel的句柄,曾经参考过ZSwang老师的《跨进程获取VCL》的例子,但是这个例子似乎对我这个目标程序不起作用。我考虑一下,可能的原因也许有以下3个。第一,这个外部程序是用c++builder做的,不是delphi,可能操作上有些不同;第二,这个程序加过壳,不知道是否会影响hook的操作;第三,普通程序和MDI程序的hook操作,可能有些出入。我的水平有限,能考虑到的可能性就这3个,但是我没办法解决。希望有懂行的朋友能给我些帮助。真诚感谢!

解决方案 »

  1.   

    一般用API HOOK的思路,就是先获取panel的句柄,然后编写个dll,使用hook根据句柄得到panel的实例,再用Components[I].Caption类型获取子类label的caption属性值。但是不知道为什么,我在获取caption值时,就什么都得不到,程序也没有报错。
      

  2.   

    因为Zswang老师的那个程序是在资源区需要10个资源分才能下载的,所以我在没有得到Zswang老师的许可前,不方便贴代码出来。如果哪位朋友热心,可以去看一下源代码,或者教我一点简单的思路。另外,现在出的问题,不知道是否跟我所说的那3个问题有关,还请熟悉的朋友多多指教!