ControlClick无法使用AutoItX3

时间:2014-02-19 19:42:40

标签: automation autoit

我目前正在尝试使用AutoItX3进行自动化。

我的脚本打开了一个应用程序,现在我想让它点击应用程序中的某个按钮。这是我的ControlClick代码(参数是从AutoIt v3窗口信息工具中获取的):

Local $sText = WinGetTitle("[ACTIVE]")<br>
ControlClick($sText, "", "[CLASS:WindowsForms10.Window.8.app.0.33c0d9d; INSTANCE:62]",     "left", 1, 21, 12)

不幸的是,这段代码似乎根本没有做任何事情。我用常规鼠标点击坐标替换它,但是这个脚本在任何具有不同分辨率的计算机上都不起作用。

有什么想法吗?

3 个答案:

答案 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。