0

我有一个用 Python 类(使用 ctypes)包装的第三方 GUI 程序。

是否有可以执行以下操作的 Win32 API 函数?

1) 获取给定屏幕位置的窗口的窗口句柄。

2) 获取带有给定标题的按钮或静态窗口的窗口句柄。

3) 将文本发送到编辑窗口。

4) 从 RICHEDIT 实例中提取文本。

我有 WinSpy(一个 Spy++ 类型的应用程序)并且知道可以使用该工具获取窗口句柄和标题,但我需要在 Python 中工作的东西。

我假设 Python 的 ctypes 让我可以访问 Win32 API 中的任何函数,所以我一直在扫描 MSDN(尤其是这个 windows/messages 部分)。我似乎找不到任何有用的东西。

谢谢,

麦克风

4

2 回答 2

3
  1. WindowFromPoint

  2. FindWindowEx查找具有给定类和名称(标题)的窗口的子项。重复操作以打通每个父子间接。EnumChildWindows也很有帮助。

  3. SendMessageTimeout+WM_SETTEXT

  4. SendMessageTimeout+WM_GETTEXTEM_STREAMOUT

于 2010-08-03T13:00:28.243 回答
2

我很难找到一个非常简单的带有 pywin32 的 WM_GETTEXT 示例,并且认为这里可能是添加一个的好地方,因为它回答了部分问题:

MAX_LENGTH = 1024

handle = # A handle returned from FindWindowEx, for example

buffer = win32gui.PyMakeBuffer(MAX_LENGTH)
length = win32gui.SendMessage(handle, win32con.WM_GETTEXT, MAX_LENGTH, buffer)

result = buffer[:length]
于 2011-04-11T18:18:29.940 回答