【问题标题】:ControlClick is not working控制点击不工作
【发布时间】:2018-11-21 10:55:37
【问题描述】:

我的脚本应该在我的窗口左上角的某个地方按下一个按钮。它没有按应有的方式工作。我试过这个:

ControlClick ClassNN ThunderRT6UserControlDC29, ahk_class ThunderRT6FormDC

但它不起作用。 我尝试了手动选项:

Controlclick x160 y60, ....

但这也不好用。

最后我只用了一个:

Click 160, 60 确实有效。

我想知道为什么它会这样?此外,有没有一种方法可以仅按下按钮而无需鼠标实际一直移动到那里。我看起来很愚蠢,而且很慢。 我问这个问题的主要原因是因为它与我提出的另一个问题密切相关: How to obtain textual contents from a window 共同点是任何带有 classNN 和 ahk_class 的东西似乎都有问题。

【问题讨论】:

  • 省略“ClassNN”:ControlClick, ThunderRT6UserControlDC29, ahk_class ThunderRT6FormDC。为什么ahk_classClassNN 有问题?
  • 我试过了,但它不起作用。它们是有问题的,因为与它们相关的任何东西似乎都不起作用。

标签: autohotkey


【解决方案1】:

尝试以管理员身份运行脚本(如果您使用的是 Windows 7 或 Vista)

【讨论】:

    【解决方案2】:

    在更彻底地浏览文档后,我终于找到了自己的解决方案:

    https://autohotkey.com/docs/commands/ControlClick.htm#Reliability

    您可以指定 NA 作为第六个参数以等待鼠标按钮抬起。 我发现在ControlClick 之前触发Control, Check, ,Button1 时,单击不起作用,但是将NA 添加到末尾以某种方式神奇地修复了它。我想正在模拟点击,但尚未解除。

    【讨论】:

      【解决方案3】:

      首先,make sure you have the capitalization correctcontrolclick 区分大小写和空格 - 名称中的所有内容都必须正确。

      其次,对于您的鼠标移动问题 - 首先保存鼠标的位置,然后保存controlclick,然后将鼠标放回您找到它的位置。鼠标只会在单击或超时期间不合适。 160ms 不明显。

      您也可以尝试使用 ahk 激活窗口,将其放在前面,然后查看是否可以通过控件切换到您想要的那个,然后通过发送诸如 space之类的键来推动它> 或 return 到最前面的窗口(您已激活)。这避免了完全使用controlclick。有些窗口可能很棘手。

      【讨论】:

        【解决方案4】:
        Controlclick x160 y60,A,,Left,1, NA
        

        这样的手动选项应该有效,至少在我的情况下它有效。

        Left = your mouse button pressed 
        1 = number of clicks
        A = Active Window
        

        从游戏中检索内容或从 ControlClicks 或 SendMessage/PostMessage 的其他自动热键部分检索变量的选项似乎还不起作用。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2012-05-09
          • 2021-02-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多