找回密码
 加入
搜索
查看: 2231|回复: 11

[网络通信] 窗口操作的一点疑惑:控件的owner,控件的instance属性[已解决]

[复制链接]
发表于 2018-6-18 18:14:42 | 显示全部楼层 |阅读模式
本帖最后由 cashiba 于 2018-6-25 11:13 编辑

最近在调试对某第三方软件的窗口界面操作的时候,用ControlClick(窗口句柄, "","[CLASS:Button; INSTANCE:26]")没有反应。感觉自己对这个函数的理解任然不透彻....

1、一个软件的窗口总归是有主窗口、子窗口。该Button按钮看位置是在子窗口界面范围的下部,最初是用ControlClick(子窗口句柄, "","[CLASS:Button; INSTANCE:26]")没反应,后来换成ControlClick(主窗口句柄, "","[CLASS:Button; INSTANCE:26]")才正确。这样就有一个问题,从外观和位置没法判断某个控件的属主,是不是有哪个API函数可以判断一个控件的ownner是主窗口还是子窗口呢?

2、一个稍微复杂些的软件都会有若干个Button按钮,如果通过Class和intance来区别按钮的话,又有困难,因为有些控件用Au3Info.exe无法对焦或取不到信息。请问这个intance是怎么获取的,Au3Info.exe是怎么获取到控件的instance的呢?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
发表于 2018-6-18 18:26:38 | 显示全部楼层
是不是窗口重叠了,用AFAN的Au3.WProbe试试。
 楼主| 发表于 2018-6-18 18:40:10 | 显示全部楼层
zch11230 发表于 2018-6-18 18:26
是不是窗口重叠了,用AFAN的Au3.WProbe试试。

感谢关注这个问题....
我是想通过纯代码的方式自动取到正确的参数阿,所以想知道控件的Ownner和instance这两个属性是如何得到的
特别是instance,网上也度不到多少资料
发表于 2018-6-18 19:08:20 | 显示全部楼层
WinGetClassList   和WinList试下看

评分

参与人数 1金钱 +10 收起 理由
cashiba + 10 感谢关注....

查看全部评分

 楼主| 发表于 2018-6-21 09:31:25 | 显示全部楼层
zch11230 发表于 2018-6-18 19:08
WinGetClassList   和WinList试下看

谢谢一直关注这个小问题!
这个类名好说,有几个函数都能轻易得到类名
关键是如何通过代码取得控件的owner以及instance
尤其对instance怎么取得的一点头绪没有....
发表于 2018-6-22 17:53:16 | 显示全部楼层
要不你把软件发来试下看。
 楼主| 发表于 2018-6-22 21:43:04 | 显示全部楼层
zch11230 发表于 2018-6-22 17:53
要不你把软件发来试下看。
哦,也许我没讲明白.....
如前所述,实际问题经过更换控件的正确父窗口(owner)的句柄后,已经解决了

本帖的目的只是想问问两个有通用性的小问题,并不是针对某个软件窗口的具体操作。
问题如下:
1、如何不通过外部工具,用哪些函数或代码可以准确找到某控件的owner
2、控件的instance如何获得的,比喻说Au3Info.exe是怎么得到某控件的具体instance数值的
发表于 2018-6-25 10:35:07 | 显示全部楼层
本帖最后由 帆船 于 2018-6-25 10:39 编辑

_WinAPI_GetWindowLong 函数,
  $GWL_HWNDPARENT - 检索父窗口句柄(即Owner)
  $GWL_ID - 检索窗口标识符(即Au3Info 工具的 Instance)

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×

评分

参与人数 1金钱 +30 收起 理由
cashiba + 30 谢谢!

查看全部评分

 楼主| 发表于 2018-6-25 11:12:25 | 显示全部楼层
帆船 发表于 2018-6-25 10:35
_WinAPI_GetWindowLong 函数,
  $GWL_HWNDPARENT - 检索父窗口句柄(即Owner)
  $GWL_ID - 检索窗 ...

非常感谢,父窗口句柄可能还有其它函数可用,就是这个instance.....,还以为这个窗口标识符是控件ID呢。这下就明白了......
发表于 2018-6-25 12:02:28 | 显示全部楼层
cashiba 发表于 2018-6-25 11:12
非常感谢,父窗口句柄可能还有其它函数可用,就是这个instance.....,还以为这个窗口标识符是控件ID呢。这 ...

标识符 - Identifier 简称ID
Instance - 实例(说实话 AuInfo 工具的表示可能不太好,Windows 帮助文档里用 HInstance 表示 控件句柄,容易混在一起)
 楼主| 发表于 2018-6-25 17:14:08 | 显示全部楼层
帆船 发表于 2018-6-25 12:02
标识符 - Identifier 简称ID
Instance - 实例(说实话 AuInfo 工具的表示可能不太好,Windows 帮助文档 ...

嗯,英文的帮助原版曾经也看过一些,本身对有些概念的表述也不确切或准确,有错误的地方也不少,好在很多函数和概念在其它编程语言里都有,自己实际使用过程中对照对照慢慢也就知道了...
桑克斯!
发表于 2018-6-28 22:51:49 | 显示全部楼层
控件按扭喜欢用数字id表示
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-9-28 05:44 , Processed in 0.117662 second(s), 21 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表