0

我有一个包含文本框的窗口。如何通过单击鼠标并在文本框中输入文本来输入文本?

4

2 回答 2

2

您通常可以通过按下制表键 5 次来“循环”输入Send("{Tab}")Send("{Tab 5}")。然后你可以使用普通的Send("input text")东西插入你想要的任何东西。您还可以使用ClipPut("content")用一些东西填充剪贴板,然后只使用Send("^v")(“^”等于“{Ctrl}”,请参阅发送键列表)插入您放置在那里的任何内容 - 并且可以选择在之前保存剪贴板内容ClipGet()和然后在之后恢复它。在通常WinActivate("Window Title")将要发送击键的窗口设置为活动状态之前。祝你好运!

最后但并非最不重要...如果您的输入元素的位置是固定的,您可以在激活它们之前单击它,查看Opt("MouseCoordMode", 0)相对于窗口的坐标定位,然后使用类似MouseClick("primary", 20, 65, 1, 0).

于 2012-07-30T07:16:59.447 回答
1

控件 ID 不是您处理控件的唯一方法。您也可以使用控件类和实例。例如

ControlSetText("Untitled - Notepad", "", "[CLASS:Edit; INSTANCE:1]", "hello world!")

您可以使用 AutoIt 附带的 AutoIt Window Info 工具获取类/实例详细信息。

这比发送安全得多。但有时使用 Send 是不可避免的。您还可以使用 SendKeepActive,它会在您向其发送击键时尝试保持某个窗口处于活动状态。

于 2012-08-03T07:59:40.547 回答