python - wxPython - 使用 wx python 模块获取现有的 windowDC/句柄?

标签 python python-2.7 wxpython wxwidgets

我一直在研究在 Windows 7 上使用 wx python 包。具体来说,我希望能够获取现有窗口(即不是由 python 程序打开的窗口)的图像数据。看来我可以通过获取窗口的设备上下文、创建兼容的设备上下文、复制位图,然后按照我喜欢的方式使用它来完成此操作。问题是我似乎找不到获取现有窗口的设备上下文(或句柄)的方法。我只看到使用 wx 创建的 python 程序从 windows 获取它们的方法。我怎样才能做到这一点?非常感谢!

最佳答案

wx 可能没有办法做到这一点。

您需要的 Windows API 非常简单,您可以通过 win32api 使用它们(如果您愿意,也可以通过 ctypes,但这需要更多工作)。

首先,我不知道你打算如何识别你想要的窗口。如果你有它的类和名称,你可以直接 FindWindow (或者,如果它可能不是顶级窗口, FindWindowEx )。如果您想通过其他方式搜索,您可能需要调用EnumWindow (如果您不确定它是顶级窗口,则递归地加上EnumChildWindows)。

此时,您只需调用wx.Windows.AssociateHandle即可将wx.Window对象附加到HWND。

如果您出于某种原因无法做到这一点,GetDC为您提供 HWND 的显示上下文。然后,您可以创建一个内存 DC,或者获取 wx 窗口下的 native 窗口的 DC,以及 BitBlt从一个到另一个。

关于python - wxPython - 使用 wx python 模块获取现有的 windowDC/句柄?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19991391/

相关文章:

wxpython - 在 Py2Exe 中运行 GUI 应用程序时如何隐藏 PhantomJS 控制台?

python - 向 matplotlib 等高线图添加十字准线或标记

python - 一张图片上的多个图表(python)

Python:合并两个列表,其中对象 "identity"不相等

python - 将 .txt 文件从 .tar.gz 文件复制到其他目录

testing - 在 wxPython 应用程序的自动化测试中处理模态对话框

python - 如何更改 wxPython 工具栏的外观?

python - Django 为黑盒路由 URL 写入身份验证重定向

python - 从另一台机器访问digitalocean服务器上的mongodb

python - 在 Plone 附加组件中包含 Python 脚本