请问如何才能改变外部程序TFlatCheckBox类的选择状态?
用sendmessage发送BM_SETCHECK并不管用
请高手指教!

解决方案 »

  1.   

    如果目标程序不是你自己写的,且对象不回应正常的Windows消息,那么注定这事情就是麻烦的。你或者替换目标的窗口过程,这样你倒可以完全控制其运行,再或者你反汇编跟踪目标程序,但是很显然这些方法都是超级麻烦的,呵呵
      

  2.   

    帮你研究了一下,发现这个TFlatCheckBox类的控件在改变自己的Value时,
    只发生:
    WM_CAPTURECHANGED
    这个事件,而且无法得到它的value值,因此能用supergreenbean的方法,或者,我认为可以换个思路,这个value值有来源吗?比如是一启动程序就复位(如果是这样就可以通过检测WM_CAPTURECHANGED
    来得知value的值了)或者是从ini或注册表读取的呢(如果是这样就可以读源数据了)?这样,就把这个问题转化到直接读源目标上了。=========
    累自己先找TFlatCheckBox控件,没想到是delphi的!又安了delphi做了个带这个控件的程序然后spy++...
      

  3.   

    非常感谢DooDu(I want,I can.)
    目标程序,经过重重加密的,呵呵,很难分析~
    hying给加的壳,据说现在还没有人能完全把壳脱掉
    不过,还是非常感谢,等我自己再想别的方法看看吧