EnumChildWindows的威力
2012-10-25 21:10
204 查看
版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处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,否则将一直枚举下去。
有了上面的知识,我想你应该知道怎么做了。
很早就写过类似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的威力
- EnumChildWindows的威力
- EnumChildWindows的威力
- VC++ EnumChildWindows
- 调用EnumChildWindows来枚举子窗口
- C#中捕捉对话框的文本内容 EnumChildWindows
- [win32 api] FindWindow FindWindowEx EnumChildWindows
- EnumChildWindows (user32)
- C#中捕捉对话框的文本内容 EnumChildWindows
- EnumChildWindows的使用
- VC用EnumChildWindows枚举所有复选框,并勾选(取消勾选)
- EnumChildWindows的使用
- MFC EnumChildWindows的使用
- C#应用WindowsApi实现查找\枚举(FindWindow、EnumChildWindows)窗体控件,并发送消息。
- 学习EnumChildWindows Function
- EnumWindows/EnumChildWindows/ 枚举窗口 子窗口 调用实例
- 使用EnumChildWindows函数遍历窗体上所有控件
- EnumChildWindows遍历窗口
- [转]C#中捕捉对话框的文本内容 EnumChildWindows