C#捕获直接3D屏幕

我一直在搞屏幕捕捉一段时间,我设法捕捉整个屏幕,屏幕上的某些区域等…

但是当我进入游戏并尝试捕捉屏幕时,它完全忽略了游戏,而是捕获桌面(或游戏窗口后面的任何内容)。 另一个有趣的事实是,PrtScn按钮也会发生同样的事情。

关于如何捕捉游戏画面的任何想法?

您正在使用的屏幕捕获技术非常适合捕获非硬件加速的内容。 我怀疑你在尝试捕获Windows Media Player中的电影帧时会遇到同样的问题。

解决方案是使用DirectX从硬件本身进行屏幕捕获。 本文解释了如何使用一些代码和一个名为SlimDX的 DirectX托管包装器来实现这一点 。

编辑如果Slim DX不能为您工作,那么您只需要在Direct X周围找到另一个托管包装器。我认为如果不在硬件级别工作,您将无法进行屏幕捕获,并且DirectX是在Windows平台上执行此操作的方法。