4

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

ControlClick ClassNN ThunderRT6UserControlDC29, ahk_class ThunderRT6FormDC

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

Controlclick x160 y60, ....

但这也行不通。

最终我只用了一个:

Click 160, 60这确实有效。

我想知道为什么它会这样?此外,有没有一种方法可以只按下按钮而没有鼠标实际一直移动到那里。我看起来很愚蠢,而且很慢。我问这个问题的主要原因是因为它与我提出的另一个问题密切相关: 如何从窗口中获取文本内容 共同点是任何带有 classNN 和 ahk_class 的东西似乎都有问题。

4

4 回答 4

5

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

于 2013-08-06T21:52:46.190 回答
1

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

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

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

于 2018-11-21T02:55:37.783 回答
0

首先,确保您的大小写正确controlclick区分大小写和空格 - 名称中的所有内容都必须正确。

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

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

于 2014-03-27T04:23:53.083 回答
0
Controlclick x160 y60,A,,Left,1, NA

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

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

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

于 2018-09-11T19:19:09.713 回答