鼠标单击按钮



我用tkinter编写了一个简约的python程序,它在单击按钮时会给出一个示例文本。我现在想执行这个程序并自动单击按钮:

#include <MsgBoxConstants.au3>
#include <AutoItConstants.au3>
CalcTime()
Func CalcTime()
    Run("dist/min_tk_app.exe")
    Local $aPos = ControlGetPos("[CLASS:Button; INSTANCE:1]", "", "Edit1")
    MsgBox($MB_SYSTEMMODAL, "", $aPos)
    MouseClick($MOUSE_CLICK_LEFT, 324, 145, 1)
EndFunc

我收到了这个信息:[CLASS:Button; INSTANCE:1],通过自动窗口信息应用程序。我总是只接收0作为$aPos的输出。你知道为什么会这样吗?

您使用ControlGetPos错误。

ControlGetPos ( "title", "text", controlID )

[CLASS:Button; INSTANCE:1]应该放在controlID,不要忘记窗口的标题(重要)!

无论如何,与其ControlGetPosMouseClick,不如使用ControlClick

$WinTitle = "" ; put your window title here MANDATORY or it will use active window
$WinText = "" ;can be left empty
ControlClick($WinTitle, $WinText, "[CLASS:Button; INSTANCE:1]")

我假设您收到0作为$aPos的输出,因为窗口还不存在。在处理该窗口之前,您可以尝试使用WinWait

Run("dist/min_tk_app.exe")
; wait 10 seconds for the window to appear
WinWait("[CLASS:YourApp]", "", 10)
; maybe wait another second
Sleep(1000)
Local $aPos = ControlGetPos("[CLASS:Button; INSTANCE:1]", "", "Edit1")
如果

@mrt的解决方案不起作用,我建议使用ControlFocus将焦点设置在控件上,然后ControlSend在控件上发送回车按钮。通常预先选择"确定"按钮。如果不是这种情况,则可以发送 TAB,直到按钮获得焦点并发送回车。

相关内容

  • 没有找到相关文章

最新更新