【问题标题】:Get content of another window获取另一个窗口的内容
【发布时间】:2010-10-28 04:34:06
【问题描述】:

我完全迷路了。我想在我的控制台应用程序中获取窗口的视觉内容以进行进一步处理。我知道如何找到 HWND,但我不知道如何获取内容。我要抓取的应用程序是3D的,但我不知道它是Direct3D还是OpenGL,但我需要处理每一帧(虽然有些跳帧是可以接受的)

谢谢!

【问题讨论】:

  • 尝试使用 Spy++ 进一步研究其内部结构。
  • 你只需要渲染窗口的图像还是需要它的内容?
  • 我只想要图像,执行图像处理。但正如我提到的,该应用程序是 3D 的,因此没有 Windows 窗体。

标签: c++ winapi


【解决方案1】:

您需要查看BitBlt() 函数。如果您不熟悉 Win32 GDI,那么继续进行的方式可能看起来不直观。看看这个BitBlt() Copy and Paste tutorial。文章没有给出完整的代码,是VB.net,但是给出了方法的概要(Window Handles, Graphics Contexts, BitBlt() and their relashionships)。

如果这个问题在几个小时后仍未得到解答,我将发布一个更精确、面向 C++ 的答案(我现在没有代码)。

【讨论】:

  • 它抓取窗口的当前内容,无论那里是什么,包括在其中呈现的任何 3D 应用程序。我曾帮助一位朋友在部分捕获的帧中使用 OCR 为 3D 游戏编写机器人。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-11-03
  • 1970-01-01
  • 1970-01-01
  • 2012-06-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多