在python 3.2中使用win32 api选择发送击键的GUI窗口

时间:2012-06-25 09:41:34

标签: python winapi user-interface python-3.x pywin32

我正在使用win32api在python中进行GUI自动化(winmerge)。我必须选择winmerge窗口,以便我可以使用sendkeys函数向它发送一些键盘笔划。但是我的键盘笔划将进入python活动状态shell,而不是所需的window.I不知道窗口句柄所以不能使用findwindow函数。可以建议一种方法来选择winmerge窗口。 P.S-我看到了一个名为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
                  """)

1 个答案:

答案 0 :(得分:1)

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

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

我希望它有所帮助

LUC