EnumChildWindows的威力

原创 2004年02月07日 22:55:00

版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处http://xinyistudio.vicp.net/和作者信息及本声明

很早就写过类似spy++和查看密码窗口的东西,一直想给这个小东西再加点特别的。

前段时间对软件安装注册发生了兴趣,有些软件如果你不输入正确注册码,那该死的“下一步”按钮就一直disable。这次我就让spy++彻底spy到底,把那个注册用的按钮置亮,让我轻松进入“下一步”,呵呵...。

我的想法是光标移到指定的窗口上后,探测这个窗口上到底有多少按钮,如果有,就将它们都Enable。

在这里我不想讨论怎样具体实现这个功能,但你要知道的是想得到这些被disable窗口(按钮)的句柄是根本无法通过WindowFromPoint这个API函数得到的,GetWindow也不要妄想了。

顺手查了下MSDN,看到EnumChildWindows可是个好东西,可以枚举一个父窗口的所有子窗口:

BOOL EnumChildWindows(
  HWND
hWndParent,         // handle to parent window // 父窗口句柄
  WNDENUMPROC lpEnumFunc// callback function // 回调函数的地址
  LPARAM lParam            // application-defined value // 你自已定义的参数
);

就这么简单,让我们再定义一个回调函数,像下面这样:

BOOL CALLBACK EnumChildProc(
  HWND
hwnd,      // handle to child window
  LPARAM lParam   // application-defined value
);

注意:这个回调函数要么是类的静态函数,要么就是一个全局的函数。

--------------------------------

在调用EnumChildWindows 这个函数时,直到调用到最个一个子窗口被枚举或回调函数返回一个false,否则将一直枚举下去。

有了上面的知识,我想你应该知道怎么做了。

调用EnumChildWindows来枚举子窗口

EnumChildWindows()函数的作用是向父窗口的所有子窗口按顺序的(枚举)调用回调函数。函数原型 BOOL WINAPI EnumChildWindows( HWN...
  • milanleon
  • milanleon
  • 2014年02月18日 11:31
  • 3440

C#应用WindowsApi实现查找\枚举(FindWindow、EnumChildWindows)窗体控件,并发送消息。

转载:http://www.cnblogs.com/hehexiaoxia/p/4223927.html 首先介绍基本WindowsApi: public static exter...
  • beyonddeg
  • beyonddeg
  • 2016年10月22日 05:15
  • 2181

最小生成树、次生成树、最短路劲、0-背包总结

1、最短路径 每组数据第一行是两个整数N、M(N N表示成都的大街上有几个路口, 标号为1的路口是商店所在地,标号为N的路口是赛场所在地, M则表示在成都有几条路。 N=M=0表示输入结束。 接下来M...
  • gz153016
  • gz153016
  • 2016年05月20日 09:35
  • 1308

算法:递归的威力

 1.  概述 在算法设计中,递归是一个非常重要的工具。许多看似复杂的问题,都能用递归轻易地解决。之所以如此,是因为可以把那些看似复杂的问题分解成一些相对简单些的问题,这些简单的问题...
  • liqingxu2005
  • liqingxu2005
  • 2014年11月26日 22:34
  • 465

BeanUtils: 威力和代价(转载)

Apache Jakarta Commons项目非常有用。我曾在许多不同的项目上或直接或间接地使用各种流行的commons组件。其中的一个强大的组件就是BeanUtils。我将说明如何使用BeanUt...
  • dapeng3306
  • dapeng3306
  • 2015年09月11日 21:24
  • 226

了解了这些才能开始发挥jQuery的威力

由于当前jQuery如此的如雷贯耳,相信不用介绍什么是jQuery了,公司代码中广泛应用了jQuery,但我在看一些小朋友的代码时发现一个问题,小朋友们使用的仅仅是jQuery的皮毛,只是使用id选择...
  • gufachongyang02
  • gufachongyang02
  • 2014年12月05日 17:56
  • 790

位运算的威力

转载自:http://blog.csdn.net/iukey/article/details/7195265一、有关位运算的基础知识总结 位运算包括: &(与)、|(或)、^(异或)、~(取反)、...
  • conatic
  • conatic
  • 2016年07月26日 10:38
  • 161

位运算的威力

一、有关位运算的基础知识总结 位运算包括:&(与)、|(或)、^(异或)、~(取反)、>>(右移)、 环境预设:32位机下面,int占2个字节,有符号 int a = 11; int b = 100...
  • madison__
  • madison__
  • 2017年02月18日 19:40
  • 54

Xcode中断点的威力

这里先推荐两篇Xcode相关的文章: Xcode Code Snippets iOS调试 — 基本技巧   本文目录: 1、添加一个特殊的断点     异常断点(E...
  • xxcios
  • xxcios
  • 2013年07月10日 13:55
  • 670

位运算的威力 好厉害~~~

一、有关位运算的基础知识总结 位运算包括:&(与)、|(或)、^(异或)、~(取反)、>>(右移)、 环境预设:32位机下面,int占2个字节,有符号 int a = 11; int b = 100...
  • xuyinzan
  • xuyinzan
  • 2017年02月04日 12:05
  • 124
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:EnumChildWindows的威力
举报原因:
原因补充:

(最多只允许输入30个字)