【问题标题】:ControlClick() without control ID没有控件 ID 的 ControlClick()
【发布时间】:2017-01-09 12:29:10
【问题描述】:

我的 AutoIt 脚本模拟鼠标点击。首先右键单击一个位置,然后左键单击许多其他点之一。我通过MouseClick() 实现了这一点,并且效果很好。

但现在我希望脚本在“后台”中工作,所以我使用了ControlClick()。但是没有控制ID。这是我尝试过的:

$square = Floor(Random(0,$length)) ;this one gets length of array with coordinates

;MouseClick("right", 1634,195 ,1,1) first version-works fine
ControlClick("Medivia","", "", "right",1,1634,195)

;MouseClick("left", $cordX[$square], $cordY[$square]) first version-works fine
ControlClick("Medivia","", "", "left",1 ,$cordX[$square] ,$cordY[$square])

脚本点击,但只在我离开鼠标指针的地方。它不会自行移动鼠标指针。有人可以帮助我吗?

【问题讨论】:

  • ControlClick 需要一个控件才能单击 - 这就是名称的原因。如果没有控件可以点击,这个功能是没用的。
  • 不正确,没有指定控件 AutoIt 有效地将整个窗口视为控件,例如brugbart.com/click-minimized-windows-autoit 我已经在 Firefox 最小化的情况下自己进行了测试,它可以工作。鼠标光标不动,这是正常的。尝试使用 WinGetHandle() 来验证 AutoIt 是否可以获取窗口句柄。
  • 您找到解决方案了吗?我经常使用没有 ControlID 参数的 Control... 函数。

标签: autoit


【解决方案1】:

回答限制要使用 AutoIT 的任何 Control* API,您需要与一个真实的 Windows 控件。

如果您只想进行“随机”点击,您可能不需要真正的 Windows 控件,也不应依赖ControlClick

如果您尝试单击 Windows 的“背景”,您可能只想最小化所有打开的窗口,您可以使用 WinMinimizeAll 完成此操作。

在没有真正的 Windows 控件的情况下使用 Qt 和其他框架点击 GUI

Qt 等一些框架不会为您提供许多默认 GUI 按钮等的真正 Windows 控件,因此当使用 AutoIT 的 Windows Info 工具以及那里的许多 UI spy 工具时,该信息将是不见了。

您可能需要而我目前需要的是解决方法。对于您的情况,如果我能看到您尝试自动化的序列的屏幕截图会有所帮助;看到之后我可以提供更好的建议。

就我而言,我需要单击一个没有控件的Quit 按钮,开发人员告诉我他没有办法(或知道办法)向我所在的弹出窗口添加可访问的名称尝试连接,即使我可以连接到主应用程序的 hWND。幸运的是,那个退出框的退出按钮有一个特殊的颜色,这让我可以使用 AutoIT 的PixelSearch 来定位它。

当您没有这样的酷帮手时,通常最好确定主窗口的位置,以及查找所需内容所需的像素偏移量。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-01-28
    • 1970-01-01
    • 1970-01-01
    • 2016-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-02
    相关资源
    最近更新 更多