2010-10-27 102 views
0

我完全迷失在这里。我想在控制台应用程序中获取进一步处理的窗口的可视内容。我知道如何找到HWND,但是我不知道该怎么做来获取内容。我想抓住的应用是3D,但我不知道它的Direct3D或OpenGL,但我需要每一帧处理(有些跳帧会虽然接受)获取另一个窗口的内容

谢谢!

+0

试着用Spy ++进一步研究它的内部结构。 – mth 2010-10-27 20:25:11

+0

你只需要渲染窗口的图像,还是需要它的内容? – Jay 2010-10-27 20:28:30

+0

我只是想要图像,来执行图像处理。但正如我所提到的,应用程序是3D的,所以没有窗体。 – Veehmot 2010-10-27 21:01:07

回答

0

您需要查看BitBlt()函数。如果您不熟悉Win32 GDI,继续进行的方式可能看起来不直观。看看这个BitBlt() Copy and Paste tutorial。文章没有提供整个代码,它是VB.net,但提供了方法的概要(窗口句柄,图形上下文,BitBlt()及其关系)。

如果这个问题是在几个小时仍然没有答案,我会发布一个更精确,C++面向答案,然后(我没有跟我的代码现在)。

+0

BitBlt()函数是否适用于3D应用程序? – Veehmot 2010-10-28 14:01:12

+0

它抓取窗口的当前内容,无论这些内容是什么,包括3D应用程序在其中呈现的内容。我曾帮助一位朋友在捕获帧的一部分中使用OCR编写3D游戏的机器人。 – 2010-10-28 16:05:09

相关问题