【问题标题】:Selection of the GUI window for sending keystrokes using win32 api in python 3.2在 python 3.2 中选择使用 win32 api 发送击键的 GUI 窗口
【发布时间】:2012-06-25 09:41:34
【问题描述】:

我正在使用 win32api 在 python 中进行 GUI 自动化(winmerge)。我必须选择 winmerge 窗口,以便我可以使用 sendkeys 函数向它发送一些键盘击键。但是我的键盘击键将转到 python 活动 shell 和没有到所需的窗口。我不知道窗口句柄,所以不能使用 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
                  """)

【问题讨论】:

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


    【解决方案1】:

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

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

    希望对你有帮助

    卢克

    【讨论】:

      猜你喜欢
      • 2011-07-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-08
      相关资源
      最近更新 更多