使用Python在GUI程序中发送/接收文本

1 投票
1 回答
2353 浏览
提问于 2025-04-16 02:11

我正在使用PyWin32的win32process.CreateProcess来启动一个图形界面程序,这个程序有我想在Python类中使用的功能。

我想在Python中对这个图形界面做以下几件事:

  • 向图形界面中的各个窗口发送文本(如果相信WinSpy++的话,每次我创建进程时,这些窗口的标识符似乎都会变化),
  • 点击图形界面上的按钮来配置和启动计算,
  • 从图形界面获取计算结果(这个界面可以选择直接在界面上显示文本输出,或者保存为文件输出)。

我有个简单的问题:我应该研究哪些Python/PyWin32的功能来完成这些任务?我不需要实际的代码,只想知道我应该研究哪些领域,以便自己学会怎么做。我看过《学习Python》、《编程Python》和《Win32上的Python编程》,但如果答案在里面我也没认出来。

谢谢,

Mike

1 个回答

1

你想做的事情比较复杂,我不太确定用Python能不能实现。我只能给你一些建议,但不能保证方向是对的。

关于向特定窗口发送文本,你可以使用SendMessage这个函数。你可能需要把你的数据作为按键消息发送到目标窗口。至于hWnd这个参数,SendMessage需要用到,你可以通过调用EnumChildWindows函数或者类似的函数来获取。

获取输出就更难了——我觉得你需要把目标窗口的WndProc替换成一个可以在打印时保存输出的函数。你可以用SetWindowLong来替换WndProc(可能是这样)。

这样做应该是可行的,但我个人会尽量避免写这样的代码。

还有一点——这不完全是Python相关的问题。你可以尝试找找用C/C++写的代码,看看怎么用Win32API实现类似的功能,然后再试着把它翻译成Python。如果你真的很绝望的话……

撰写回答