这是我的第一个问题。我试过大约2个小时。 我必须编译一个AutoIt可执行文件,它将在计算机上安装Xampp。 这就是我到目前为止所做的:
#RequireAdmin
; Script Start
Opt("WinTitleMatchMode", 4)
run ("xampp-win32-7.1.1-0-VC14-installer.exe")
WinWait ("Datei öffnen - Sicherheitswarnung")
ControlClick( "Datei öffnen - Sicherheitswarnung","A&usführen","Button" )
Sleep ( 5 )
; /\ Windows Security Question /\ (Everything Fine in here)
WinWait ("Question")
WinActivate ("Question")
ControlClick("Question","", "[CLASS:QWidget; INSTANCE:3]") <--- AutoIt just wont hit this Button(Actually a Qwidget)
; /\ XAMPP Anti-Virus Question /\
正如你所看到我试图左键单击qwidget,但它不会这样做。我尝试了一些原始方法,就像只是在窗口被激活时发送一个Enter,但它也不会起作用。
我会使用一个ID或更精确的东西但是WindowInfo没有得到任何Button(act.QWidget)ID
下面是我要点击的按钮摘要:
>>>> Window <<<<
Title: Question
Class: QWidget
Position: 1427, 405
Size: 506, 170
Style: 0x96C80000
ExStyle: 0x00000104
Handle: 0x0000000000590476
>>>> Control <<<<
Class: QWidget
Instance: 3
ClassnameNN: QWidget3
Name:
Advanced (Class): [CLASS:QWidget; INSTANCE:3]
ID:
Text:
Position: 170, 107
Size: 77, 26
ControlClick Coords: 35, 17
Style: 0x56000000
ExStyle: 0x00000004
Handle: 0x00000000008225C2
>>>> Mouse <<<<
Position: 1635, 552
Cursor ID: 0
Color: 0xD4D0C8
>>>> StatusBar <<<<
>>>> ToolsBar <<<<
>>>> Visible Text <<<<
qt_msgbox_buttonbox
qt_msgbox_label
qt_msgboxex_icon_label
>>>> Hidden Text <<<<
我只想点击按钮,我想使用&#34;高级(Class)&#34; -Value会有所帮助,因为它是一个精确的定义,但我没有。
PS:我知道这段代码看起来很残酷,但我的首要任务是制作一个正在运行的脚本(某种程度上),以便我可以打开任何想法,不包括&#34; Alt + F4&#34;或者&#34;粉碎我的电脑&#34;提前致谢和最诚挚的问候!
答案 0 :(得分:0)
您可能必须使用相对坐标作为偏移量: 示例:
ControlClick("Title","","[CLASS:QWidget; INSTANCE:3]", "", 1, 35, 17)
找到[CLASS:QWidget; INSTANCE:3]对象,然后单击坐标35,17(ControlClick坐标:35、17)以单击该对象内部的按钮。
我也有类似情况。不是最好的解决方案,但对我有用。试试看。