使用Python在GUI程序中发送/接收文本
我正在使用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。如果你真的很绝望的话……