枫 枫叶下的风铃 Unregistered / Unconfirmed GUEST, unregistred user! 2006-09-26 #21 WM_ENABLE = 000A;改变enable状态
X xiebaotong Unregistered / Unconfirmed GUEST, unregistred user! 2006-09-26 #22 这个比较简单的,能得到Form的句柄吧,然后枚举组件。。。。然后再。。。。 Findwindow FindwindowEx
C cqwty Unregistered / Unconfirmed GUEST, unregistred user! 2006-09-26 #24 楼上各位说的我都知道,要获得句柄,那就首先获得窗体的句柄,然后列举就出来了。 to 风卷残云: 至于拦截消息你可以修改那个Button的消息处理过程,加一句判断消息就行了,(变成可用按钮的消息) 消息好像是 WM_ENABLE 查下吧 帮助,离线资料里面都有,好困,休息下..... 你说的这个是自己写的程序,对于自己写的程序当然好处理,甚至不用消息拦截都可以,直接顺便发送一个给监视程序不就结了。但是对于别人开发的程序呢?他用的button就没有你说的这些了,而要解决这个问题,那就只有拦截。我查了,wm_enable消息是对应的,但是用什么钩子来拦截呢?有人提用windows子类化进行处理,那么就可以了。但是子类化处理之前必须先进入到别人的程序内存空间才可以,否则不行。
楼上各位说的我都知道,要获得句柄,那就首先获得窗体的句柄,然后列举就出来了。 to 风卷残云: 至于拦截消息你可以修改那个Button的消息处理过程,加一句判断消息就行了,(变成可用按钮的消息) 消息好像是 WM_ENABLE 查下吧 帮助,离线资料里面都有,好困,休息下..... 你说的这个是自己写的程序,对于自己写的程序当然好处理,甚至不用消息拦截都可以,直接顺便发送一个给监视程序不就结了。但是对于别人开发的程序呢?他用的button就没有你说的这些了,而要解决这个问题,那就只有拦截。我查了,wm_enable消息是对应的,但是用什么钩子来拦截呢?有人提用windows子类化进行处理,那么就可以了。但是子类化处理之前必须先进入到别人的程序内存空间才可以,否则不行。
M MrMengyi Unregistered / Unconfirmed GUEST, unregistred user! 2006-09-26 #25 灰色按钮难道没有句柄?不应该的啊 我在CB中看了下还是有的啊
M MrMengyi Unregistered / Unconfirmed GUEST, unregistred user! 2006-09-26 #26 试过了,zj_mpy说的两个函数即可,Ex的函数带上Parent句柄即可。 第二个可能用消息Hook处理 LZ对蓝叶菱的回答,我感觉很奇怪。你是怎么得不到句柄的呢? 稍微实验下就知道的啊。
C cqwty Unregistered / Unconfirmed GUEST, unregistred user! 2006-09-27 #28 灰色按钮是有句柄,但是我现在要得到的句柄是其他应用程序的,而不是我自己的程序。当然,枚举窗体控件应该可以得到。另外一个问题就是,当一个窗体的按钮从灰色变成可以使用的颜色,那么这个消息怎么拦截。但是这些操作都是其他的应用程序的。
灰色按钮是有句柄,但是我现在要得到的句柄是其他应用程序的,而不是我自己的程序。当然,枚举窗体控件应该可以得到。另外一个问题就是,当一个窗体的按钮从灰色变成可以使用的颜色,那么这个消息怎么拦截。但是这些操作都是其他的应用程序的。
S sundata Unregistered / Unconfirmed GUEST, unregistred user! 2006-09-28 #30 首先要获得按钮的句柄,然后根据此句柄拦截消息,并判断消息类型
C cqwty Unregistered / Unconfirmed GUEST, unregistred user! 2006-09-28 #31 to sundata: 大哥,可以详细的指导一下吗?谢谢!
绯 绯红之王 Unregistered / Unconfirmed GUEST, unregistred user! 2006-09-29 #32 楼主相干什么 是不是觉得权限不够 想搞个外挂啊 我觉得还是枚举,通过getmessage判断
C cqwty Unregistered / Unconfirmed GUEST, unregistred user! 2006-09-29 #33 外挂我没有能力了,只是想搞清楚windows的消息机制,程序写了几年,一点底层的东西都不懂,只要一和操作系统底层接触紧密的东西我就懵了,感觉无从下手。枚举无非就是找出窗体上的具有句柄的控件,但是现在是要拦截消息。
外挂我没有能力了,只是想搞清楚windows的消息机制,程序写了几年,一点底层的东西都不懂,只要一和操作系统底层接触紧密的东西我就懵了,感觉无从下手。枚举无非就是找出窗体上的具有句柄的控件,但是现在是要拦截消息。
D dreamfly1024 Unregistered / Unconfirmed GUEST, unregistred user! 2006-09-29 #34 WH_MSGFILTER and WH_SYSMSGFILTER Hooks
C cqwty Unregistered / Unconfirmed GUEST, unregistred user! 2006-09-30 #35 to dreamfly1024: 大哥,你说的这两个钩子不能解决我的问题哦!
白 白河愁 Unregistered / Unconfirmed GUEST, unregistred user! 2006-09-30 #36 如果不是要做通用程序的话,给个你要监控的程序下载地址帮你看看。
C cqwty Unregistered / Unconfirmed GUEST, unregistred user! 2006-09-30 #37 想做成通用的,就是指定哪个窗口,就可以监视哪个窗口的.如果不是通用的,那就没有啥子意思了撒,当然我不是写外挂,只是希望能够通过指定其他应用程序的窗体即可拦截到我要的消息.
C cqwty Unregistered / Unconfirmed GUEST, unregistred user! 2006-09-30 #38 老白,麻烦顺便帮忙看看这个问题,代码在这边的了.但是会出错! http://www.delphibbs.com/delphibbs/dispq.asp?lid=3585975
白 白河愁 Unregistered / Unconfirmed GUEST, unregistred user! 2006-09-30 #39 如果想做通用的,先用 od 拦一下 CheckMenuItem,确定是否用了这个api.
C cqwty Unregistered / Unconfirmed GUEST, unregistred user! 2006-10-05 #40 结贴了,问题我还是没有解决,不过找到了别的方法代替了. 当然首先就是hook,然后当一个按钮从灰色编程可用的时候,不同的开发软件开发出来的是不一样的,不一定都是wm_enable这个消息.但是当这个消息发生的时候,会有一个十进制的309(需要的自己去兑换成十六进制).另外使用钩子的时候,不要使用windows提供的13种钩子,采用子类化技术,可以实现跨进程的消息拦截的.代码在网上有,在delphi深度历险的书中也有.谢谢大家的参与!
结贴了,问题我还是没有解决,不过找到了别的方法代替了. 当然首先就是hook,然后当一个按钮从灰色编程可用的时候,不同的开发软件开发出来的是不一样的,不一定都是wm_enable这个消息.但是当这个消息发生的时候,会有一个十进制的309(需要的自己去兑换成十六进制).另外使用钩子的时候,不要使用windows提供的13种钩子,采用子类化技术,可以实现跨进程的消息拦截的.代码在网上有,在delphi深度历险的书中也有.谢谢大家的参与!