关于改变外部程序TFlatCheckBox类控件选择状态的问题(高分)

时间:2023-01-04 20:43:48
请问如何才能改变外部程序TFlatCheckBox类的选择状态?
用sendmessage发送BM_SETCHECK并不管用
请高手指教!

8 个解决方案

#1


那就试着模拟鼠标点击咯

#2


用鼠标点,不行的,因为,要改变状态,也就是说,提前你并不知道是什么状态!
如果要选中它,如果提前已经选中了,再用鼠标点,就会变成没选中啊

#3


如果实在不行的话,就先用土办法,取颜色点来判断目标状态,然后再决定是否模拟鼠标点,呵呵

#4


呼,呵呵,多谢,没想过还有这种方法
不过,我感觉,应该有办法取控件状态吧
而且,也应该有相对应的消息事件啊

#5


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

#6


#7


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

=========
累。。。自己先找TFlatCheckBox控件,没想到是delphi的!又安了delphi做了个带这个控件的程序然后spy++...

#8


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

#1


那就试着模拟鼠标点击咯

#2


用鼠标点,不行的,因为,要改变状态,也就是说,提前你并不知道是什么状态!
如果要选中它,如果提前已经选中了,再用鼠标点,就会变成没选中啊

#3


如果实在不行的话,就先用土办法,取颜色点来判断目标状态,然后再决定是否模拟鼠标点,呵呵

#4


呼,呵呵,多谢,没想过还有这种方法
不过,我感觉,应该有办法取控件状态吧
而且,也应该有相对应的消息事件啊

#5


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

#6


#7


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

=========
累。。。自己先找TFlatCheckBox控件,没想到是delphi的!又安了delphi做了个带这个控件的程序然后spy++...

#8


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