我一直在研究在Windows 7上使用wx python包。具体地说,我希望能够获取现有窗口(即不是由python程序打开的窗口)的图像数据。看来我可以通过获取窗口的设备上下文,创建兼容的设备上下文,复制位图,然后从那里使用我喜欢的方式来做到这一点。问题是我似乎找不到找到现有窗口的设备上下文(或句柄)的方法。我只看到使用wx创建的从Windows python程序中获取它们的方法。我怎么可能去做呢?非常感谢!
wx可能无法执行此操作。
您需要的Windows API非常简单,您可以通过使用它们win32api
(或者,ctypes
如果愿意的话,也可以做很多工作)。
首先,我不知道您打算如何识别所需的窗口。如果具有其类和名称,则可以FindWindow
(或者,如果它可能不是顶级窗口,则可以FindWindowEx
)。如果要搜索其他内容,则可能需要调用EnumWindow
(EnumChildWindows
如果不确定它是顶级窗口,则需要递归调用)。
此时,您只需调用wx.Windows.AssociateHandle
即可将wx.Window
对象附加到HWND。
如果由于某种原因无法执行此操作,请GetDC
为您提供HWND的显示上下文。然后,您可以创建一个内存DC,也可以在wx窗口的下面获取本机窗口的DC,并BitBlt
从另一个窗口获取DC 。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句