控件的ClassnameNN都一样,如何分别控制
本帖最后由 jackr 于 2024-3-7 16:50 编辑各位大神帮忙看下,我在用AutoIt v3 window Info v3.3.16.0工具获取两个不同控件(一个是按钮,另一个是勾选控件)得到的ClassnameNN的值都一样,ID因为软件每次打开都会变化,所以没办法用ID来区分不同控件。
我在用ControlClick 点击函数时发生了很大困扰,应该如何写controlID 这个值呢?
ControlClick ( "title", "text", controlID [, button = "left" [, clicks = 1 [, x [, y]]]] )
按钮控件获取信息如下:
>>>> Window <<<<
Title: TestMinder MP Remote Control Software 1.0
Class: WindowsForms10.Window.8.app.0.1a0e24_r6_ad1
Position: 83, 82
Size: 898, 477
Style: 0x16CB0000
ExStyle: 0x00050300
Handle: 0x00000000002A00C8
>>>> Control <<<<
Class: WindowsForms10.BUTTON.app.0.1a0e24_r6_ad1
Instance: 8
ClassnameNN: WindowsForms10.BUTTON.app.0.1a0e24_r6_ad18
Name: Command_Options
Advanced (Class):
ID: 2557624
Text: Options
Position: 19, 369
Size: 66, 28
ControlClick Coords: 46, 9
Style: 0x5601000B
ExStyle: 0x00000000
Handle: 0x00000000002706B8
勾选控件获取信息如下:
check Energy Measurement
>>>> Window <<<<
Title: TestMinder MP Remote Control Software 1.0
Class: WindowsForms10.Window.8.app.0.1a0e24_r6_ad1
Position: 52, 52
Size: 898, 477
Style: 0x16CB0000
ExStyle: 0x00050300
Handle: 0x00000000005C0706
>>>> Control <<<<
Class: WindowsForms10.EDIT.app.0.1a0e24_r6_ad1
Instance: 3
ClassnameNN: WindowsForms10.EDIT.app.0.1a0e24_r6_ad13
Name: Check_Energy
Advanced (Class):
ID: 7407282
Text: Energy
Position: 223, 166
Size: 89, 26
ControlClick Coords: 54, 21
Style: 0x5601000B
如附件图,
本帖最后由 afan 于 2024-3-8 11:27 编辑
获取两个不同控件(一个是按钮,另一个是勾选控件)得到的ClassnameNN的值都一样
你这贴出来的也不一样吧(图是错的,是同一个控件的信息):
按钮:WindowsForms10.BUTTON.app.0.1a0e24_r6_ad18
选框:WindowsForms10.EDIT.app.0.1a0e24_r6_ad13
controlID 就用这两个不就行了,比如点击按钮
ControlClick('WindowsForms10.EDIT.app.0.1a0e24_r6_ad13', '', ‘WindowsForms10.BUTTON.app.0.1a0e24_r6_ad18’)
NAME 也不一样,需要的话也可以加上,如 或者
多用 ControlGetHandle 调试,看看操作的控件是否正确。如果是前台操作,有些不用找控件点击,直接 Send TAB n次定位后 Enter 更方便快捷 可以遍历之后,判断坐标或者大小,来确定 谢谢两位答复。
同时谢谢afan的详细指正。图片上两个控件ClassnameNN是一样的,但我在实验中后来发现ClassnameNN值 也是会变的,特别是切换spyy++ control detection logic模式时
我后面用NAME:Command_Options 作为control ID 试成功了。
代码如下:
ControlClick("TestMinder MP Remote Control Software", "","","left")
ControlGetHandle 调试和TAB 操作,我再试下,非常感谢!
页:
[1]