有一个用visual foxpro写的程序,我要向其中某个窗体上的控件发送消息,但是用winsight32和spy++只能看到那个窗体,看不到窗体上的任何控件,也就无法得到控件的句柄,所有无法发送消息,怎么办?是不是visual foxpro用的不是windows的标准控件?怎么才能和程序中的控件进行通信呢?分很多,解决了必有重谢!!

解决方案 »

  1.   

    那就奇怪了,为什么我用spy++和winsight32都看不到窗体上的任何控件呢?我只是想向窗体上的控件发送消息而已啊~
      

  2.   

    那个VFP写的是什么程序?
    如果嵌入IE或者其他程序的话,spy++恐怕不容易得到控件了
    那样只能用接口………………
      

  3.   

    WindowFromPoint也不行,得到的都是窗体的句柄那个VFP写的是关于票据处理的桌面程序,似乎没什么特别的
      

  4.   

    知道这个控件的实例吗?
    如果知道,倒也可以用Tcontrol类的Perform来发送消息
      

  5.   

    findwindow,finwindowex都只能找到窗体的句柄,窗体上的控件找不到包括使用SPY++也是,只能看到窗体,上面的控件都看不到
      

  6.   

    另外,使用EnumChildWindows查找子窗体,返回也是空
      

  7.   

    现在只能是通过keybd_event来在窗体上的各个控件之间切换焦点,但是目前焦点在哪个控件上也不知道,得不到控件的句柄,就无法取得控件的标题、名称、值,郁闷啊~~~`老大们帮帮忙啊~~~~~~~`
      

  8.   

    有可能是第三方控件的问题,或者这个程序经过了特殊处理(比如加特定的壳)之类的
    第三方控件不知SPY++能否探测出来
      

  9.   

    第三方控件的话SPY++完全可以看到,也不像是加过壳的。
      

  10.   

    findwindow,finwindowex,再加上EnumChildWindows,应该算是最常规的办法了吧,得到的都是那个窗体的句柄,没有办法获得控件的句柄。
      

  11.   

    实在不成,vfp的程序很容易反编译的,你去找个反编译的来,把原程序都弄出来,然后就....嘿嘿
      

  12.   

    那个程序是用VFP 9写的,现在的反编译都只能到VFP 6啊~惨~~~~~
      

  13.   

    看来你们都没用过 vfp
    vfp 的控件除了嵌入的 ole/ActiveX 之外,都是由 vfp 自己画的,对外没有句柄
      

  14.   

    以前用过foxbase,哈哈~看来VFP好与众不同啊,是不是就没有办法了呢?查MSDN去~多谢dkfdtf兄弟,争取早日结帖~
      

  15.   

    没有句柄就没有办法使用 api 来与其通讯,按 vfp 开发托对以前的解释,是因为 vfp 的编译器不是固定对应于 Windows 平台的,为保证不同平台间的原代码级兼容,才使用了自画控件而不提供独立控件句柄的方法,只可惜 vfp6 以后的 vfp 就没有出过 for unix/mac 版本