cashiba 发表于 2018-6-18 18:14:42

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

本帖最后由 cashiba 于 2018-6-25 11:13 编辑

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

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

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

zch11230 发表于 2018-6-18 18:26:38

是不是窗口重叠了,用AFAN的Au3.WProbe试试。

cashiba 发表于 2018-6-18 18:40:10

zch11230 发表于 2018-6-18 18:26
是不是窗口重叠了,用AFAN的Au3.WProbe试试。

感谢关注这个问题....
我是想通过纯代码的方式自动取到正确的参数阿,所以想知道控件的Ownner和instance这两个属性是如何得到的
特别是instance,网上也度不到多少资料
{:face (396):}

zch11230 发表于 2018-6-18 19:08:20

WinGetClassList   和WinList试下看

cashiba 发表于 2018-6-21 09:31:25

zch11230 发表于 2018-6-18 19:08
WinGetClassList   和WinList试下看

谢谢一直关注这个小问题!
这个类名好说,有几个函数都能轻易得到类名
关键是如何通过代码取得控件的owner以及instance
尤其对instance怎么取得的一点头绪没有....
{:face (201):}

zch11230 发表于 2018-6-22 17:53:16

要不你把软件发来试下看。

cashiba 发表于 2018-6-22 21:43:04

zch11230 发表于 2018-6-22 17:53
要不你把软件发来试下看。哦,也许我没讲明白.....
如前所述,实际问题经过更换控件的正确父窗口(owner)的句柄后,已经解决了
{:face (396):}
本帖的目的只是想问问两个有通用性的小问题,并不是针对某个软件窗口的具体操作。
问题如下:
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)

cashiba 发表于 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 表示 控件句柄,容易混在一起)

cashiba 发表于 2018-6-25 17:14:08

帆船 发表于 2018-6-25 12:02
标识符 - Identifier 简称ID
Instance - 实例(说实话 AuInfo 工具的表示可能不太好,Windows 帮助文档 ...

嗯,英文的帮助原版曾经也看过一些,本身对有些概念的表述也不确切或准确,有错误的地方也不少,好在很多函数和概念在其它编程语言里都有,自己实际使用过程中对照对照慢慢也就知道了...
桑克斯!
{:face (55):}

friendtasy 发表于 2018-6-28 22:51:49

控件按扭喜欢用数字id表示
页: [1]
查看完整版本: 窗口操作的一点疑惑:控件的owner,控件的instance属性[已解决]