| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1092 人关注过本帖
标题:多个子窗口,为什么FindWindowEx只能找到一个?
只看楼主 加入收藏
comb007
Rank: 2
等 级:论坛游民
帖 子:20
专家分:12
注 册:2013-12-26
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:6 
多个子窗口,为什么FindWindowEx只能找到一个?
第三方软件,我的问题窗口是一个像菜单框的窗口。
按钮b,c,d,e...是并排的一行按钮,用spy++不能直接抓取b,c,d,e的句柄,只能抓到父窗口的兄弟,再找到他们的父窗口句柄a
我的目的是:比如当前显示页是b按钮对应的页面,我想找到d按钮句柄然后点击。

于是我用
x=findwindowex(a,0,"类名",vbnullstring)  'x正确,x为b按钮的句柄。
y=findwindowex(a,x,"类名",vbnullstring)  'y=0   ????没有下一个?

然后我把当前显示页改为d按钮对应页面,重复上述调试,
x=findwindowex(a,0,"类名",vbnullstring)  'x正确,x为d按钮的句柄。
y=findwindowex(a,x,"类名",vbnullstring)  'y=0   ????没有下一个?

我的问题是:只能找到当前页面所对应的按钮的句柄,其他按钮的句柄怎么找不出来?


用spy++不能直接看出b,c,d,e是同级子窗口,但推测是。因为父窗口都为a,类名都一样。
用spy++找到父窗口兄弟,再找到父窗口,再找到一个子窗口。但仅能找到一个,没有下一个。并且每次找到的这个子窗口是当前显示页所对应的按钮。

用标题做参数也找不到。


新手,望前辈们指点!
刚注册只有20分,向节约点。
搜索更多相关主题的帖子: 第三方软件 
2013-12-26 18:18
seafish011
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:167
专家分:694
注 册:2011-11-8
收藏
得分:10 
你写的两句代码是正确的。
其实不一定是你代码的问题,有可能是你所找的那个控件不是BUTTON(当然不排除有其它的可能)。
2013-12-27 02:33
comb007
Rank: 2
等 级:论坛游民
帖 子:20
专家分:12
注 册:2013-12-26
收藏
得分:0 
谢谢你的回复,那个控件不是button,类名是“WindowsForms10.windows.8.app.0.37873a”,请问这是什么控件,如何寻找?鼠标是可以点击的。
2013-12-27 20:10
comb007
Rank: 2
等 级:论坛游民
帖 子:20
专家分:12
注 册:2013-12-26
收藏
得分:0 
另外再问,findwindow的参数可以带*号吗?

我用findwindow("类名","AAA*")和findwindow("类名","AAA" & "*")都不行,请问如何实现这种目的?
2013-12-27 23:24
seafish011
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:167
专家分:694
注 册:2011-11-8
收藏
得分:0 
以下是引用comb007在2013-12-27 20:10:13的发言:

谢谢你的回复,那个控件不是button,类名是“WindowsForms10.windows.8.app.0.37873a”,请问这是什么控件,如何寻找?鼠标是可以点击的。

“WindowsForms10.windows...”这些控件最有可能是用.NET写的。你去了解下managed spy++。
2013-12-28 00:37
seafish011
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:1
帖 子:167
专家分:694
注 册:2011-11-8
收藏
得分:0 
以下是引用comb007在2013-12-27 23:24:01的发言:

另外再问,findwindow的参数可以带*号吗?

我用findwindow("类名","AAA*")和findwindow("类名","AAA" & "*")都不行,请问如何实现这种目的?

有个笨办法就是:列举该类名的窗体名称,然后再比较窗体名称与目标结果。
2013-12-28 00:54
comb007
Rank: 2
等 级:论坛游民
帖 子:20
专家分:12
注 册:2013-12-26
收藏
得分:0 
谢谢,网上搜了很多,也就是这两个答案。
2013-12-28 01:31
快速回复:多个子窗口,为什么FindWindowEx只能找到一个?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.033859 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved