我目前正在尝试使用AutoItX3进行自动化。
我的脚本打开了一个应用程序,现在我想让它点击应用程序中的某个按钮。这是我的ControlClick代码(参数是从AutoIt v3窗口信息工具中获取的):
Local $sText = WinGetTitle("[ACTIVE]")<br>
ControlClick($sText, "", "[CLASS:WindowsForms10.Window.8.app.0.33c0d9d; INSTANCE:62]", "left", 1, 21, 12)
不幸的是,这段代码似乎根本没有做任何事情。我用常规鼠标点击坐标替换它,但是这个脚本在任何具有不同分辨率的计算机上都不起作用。
有什么想法吗?
答案 0 :(得分:0)
试试这个来理解我的意思。
Example()
Func Example()
; Run Notepad
Run("notepad.exe")
; Wait 10 seconds for the Notepad window to appear.
WinWaitActive("[CLASS:Notepad]", "", 10)
ControlSetText("[CLASS:Notepad]", "", '', 'HELLO WORLD!')
; Wait for 2 seconds to display the Notepad window.
Sleep(2000)
ControlSend("[CLASS:Notepad]", "", '', '{Right 20}{ENTER}NEW LINE!')
; Close the Notepad window using the classname of Notepad.
WinClose("[CLASS:Notepad]")
WinWaitActive("Editor", "", 10)
ControlSend("Editor", "", '', '!n')
EndFunc ;==>Example
答案 1 :(得分:0)
您确定AutoIt间谍工具会分别识别按钮吗?有时AutoIt信息工具会将应用程序的某些部分(多个按钮或多个选项卡)识别为单个对象。在这种情况下,您必须使用mouseclick操作使用下面的控件点击功能
const somedata = {foo:{bar:[{baz:[{someprop:"a"},{someprop:"b"},{someprop:"c"}]},{baz:[{someprop:"d"},{someprop:"e"},{someprop:"f"}]}]}};
const result = somedata.foo.bar.flatMap(({baz}) => baz.map(({someprop}) => someprop));
console.log(result);
这可能对您有帮助。请确保从autoIt信息工具的“鼠标”标签中捕获x和y坐标。
答案 2 :(得分:-2)
有时它可能会发生在一些受到僵尸/宏系统保护的窗口上,如游戏,Java客户端等......
您可以使用具有第三方桌面控制器的VM(例如teamviewer / RDP /)绕过此...您将能够通过RDP会话运行脚本。
请注意:AutoIt不能制作GameBots:)
VLU。