如何通过命令行填写GUI应用中的文本框?

4 投票
3 回答
2980 浏览
提问于 2025-04-16 14:19

我正在用python设计一个NLP(自然语言处理)应用程序,我想使用一个叫UNL(通用网络语言)的EnConverter,这个工具是一个可执行的图形界面第三方应用,只能在windows上运行(我没有它的源代码):


我想知道的是,怎么编写一个控制台应用程序来调用这个EnConverter,并点击“设置”按钮,然后填充下面图片中的文本框:

当我点击“设置”按钮时,之前的窗口会弹出来……我希望我的应用程序能填充这些文本框,然后点击“确定”按钮……

点击“确定”按钮后,应用程序会返回到第一个窗口……我应用程序的最后一步是点击第一个窗口中的“EnConvert”按钮……请看第一张图片。

我知道这是可能的,因为我的教授在Perl中做过这个……但他拒绝告诉我怎么做!!!我在网上查了很多,但什么也没找到!

3 个回答

1

Windows Sendkey这个工具包看起来非常适合这种需求。

在这个页面上:

这个例子中,SendKeys被用来在记事本中输入“Hello World!”。

import SendKeys
SendKeys.SendKeys("""
    {LWIN}
    {PAUSE .25}
    r
    Notepad.exe{ENTER}
    {PAUSE 1}
    Hello{SPACE}World!
    {PAUSE 1}
    %{F4}
    n
""")
3

你可以使用 PyWinAuto 这个工具。它可以识别界面上的小部件,比如按钮,还能点击按钮、在图形界面上输入文字等等。

4

你可以使用 Win32::GuiTest 这个工具。它可以识别界面上的小部件,比如按钮,还能点击按钮、在图形界面上输入文字等等。

撰写回答