窗口操作的一点疑惑:控件的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的呢?
是不是窗口重叠了,用AFAN的Au3.WProbe试试。 zch11230 发表于 2018-6-18 18:26
是不是窗口重叠了,用AFAN的Au3.WProbe试试。
感谢关注这个问题....
我是想通过纯代码的方式自动取到正确的参数阿,所以想知道控件的Ownner和instance这两个属性是如何得到的
特别是instance,网上也度不到多少资料
{:face (396):} WinGetClassList 和WinList试下看 zch11230 发表于 2018-6-18 19:08
WinGetClassList 和WinList试下看
谢谢一直关注这个小问题!
这个类名好说,有几个函数都能轻易得到类名
关键是如何通过代码取得控件的owner以及instance
尤其对instance怎么取得的一点头绪没有....
{:face (201):} 要不你把软件发来试下看。 zch11230 发表于 2018-6-22 17:53
要不你把软件发来试下看。哦,也许我没讲明白.....
如前所述,实际问题经过更换控件的正确父窗口(owner)的句柄后,已经解决了
{:face (396):}
本帖的目的只是想问问两个有通用性的小问题,并不是针对某个软件窗口的具体操作。
问题如下:
1、如何不通过外部工具,用哪些函数或代码可以准确找到某控件的owner
2、控件的instance如何获得的,比喻说Au3Info.exe是怎么得到某控件的具体instance数值的 本帖最后由 帆船 于 2018-6-25 10:39 编辑
_WinAPI_GetWindowLong 函数,
$GWL_HWNDPARENT - 检索父窗口句柄(即Owner)
$GWL_ID - 检索窗口标识符(即Au3Info 工具的 Instance)
帆船 发表于 2018-6-25 10:35
_WinAPI_GetWindowLong 函数,
$GWL_HWNDPARENT - 检索父窗口句柄(即Owner)
$GWL_ID - 检索窗 ...
非常感谢,父窗口句柄可能还有其它函数可用,就是这个instance.....,还以为这个窗口标识符是控件ID呢。这下就明白了...... cashiba 发表于 2018-6-25 11:12
非常感谢,父窗口句柄可能还有其它函数可用,就是这个instance.....,还以为这个窗口标识符是控件ID呢。这 ...
标识符 - Identifier 简称ID
Instance - 实例(说实话 AuInfo 工具的表示可能不太好,Windows 帮助文档里用 HInstance 表示 控件句柄,容易混在一起) 帆船 发表于 2018-6-25 12:02
标识符 - Identifier 简称ID
Instance - 实例(说实话 AuInfo 工具的表示可能不太好,Windows 帮助文档 ...
嗯,英文的帮助原版曾经也看过一些,本身对有些概念的表述也不确切或准确,有错误的地方也不少,好在很多函数和概念在其它编程语言里都有,自己实际使用过程中对照对照慢慢也就知道了...
桑克斯!
{:face (55):} 控件按扭喜欢用数字id表示
页:
[1]