0

我正在使用 python 在 python 中进行 GUI 自动化(winmerge)win32api。我必须选择 winmerge 窗口,以便我可以使用 sendkeys 函数向它发送一些键盘敲击。但是我的键盘敲击将发送到 python 活动 shell 而不是所需的窗口。我不知道窗口句柄,所以不能使用 findwindow 功能。你能建议一种选择winmerge窗口的方法吗?PS-我看到了一个名为 Enumwindow 的函数(它需要一个本地回调函数争论。你能不能告诉我传递什么作为本地调用函数争论)提前谢谢你。到目前为止我的代码-

import win32api
import win32com.client
import subprocess
import win32gui
subprocess.Popen(r'winmergeu {0} {1}'.format('file1','file2') )
shell=win32com.client.Dispatch("WScript.Shell")
shell.Sendkeys("""
                  %t
                  r
                  """)
4

1 回答 1

1

这是一个答案的链接,可以帮助您激活正确的窗口:https ://stackoverflow.com/a/2091530/117092它在每个打开的窗口的标题上运行一个正则表达式,并在第一个匹配窗口上返回一个句柄. 为 Python 2.x 开发,它也应该在 Python 3.x 中工作

然后您可以将密钥发送到此窗口。以下模块可能会有所帮助: http ://www.rutherfurd.net/python/sendkeys/#sendkeys

我希望它有帮助

卢克

于 2012-06-25T12:13:53.500 回答