C# 捕获直接 3D 屏幕
Posted
技术标签:
【中文标题】C# 捕获直接 3D 屏幕【英文标题】:C# Capturing Direct 3D Screen 【发布时间】:2011-09-02 18:47:05 【问题描述】:我一直在玩屏幕捕捉一段时间,我设法捕捉到整个屏幕,屏幕上的某些区域等......
但是当我进入游戏并尝试捕获屏幕时,它会完全忽略游戏,而是捕获桌面(或游戏窗口后面的任何东西)。 另一个有趣的事实是,同样的事情发生在 PrtScn 按钮上。
关于如何捕捉游戏屏幕的任何想法?
【问题讨论】:
【参考方案1】:您使用的屏幕捕获技术非常适合捕获非硬件加速的内容。我怀疑您在尝试在 Windows Media Player 中捕获电影帧时会遇到同样的问题。
解决方案是使用 DirectX 从硬件本身进行屏幕截图。 This article 解释了如何使用一些代码和一个名为 SlimDX 的 DirectX 托管包装器来做到这一点。
编辑 如果 Slim DX 不适合您,那么您只需要在 Direct X 周围找到另一个托管包装器。我认为如果不在硬件级别和 DirectX 上工作,您将无法进行屏幕捕获是在 Windows 平台上执行此操作的方法。
【讨论】:
它需要 SlimDX,这不是很好,因为你必须在任何地方安装它。 @Or Betsalel 您不必使用安装程序。您还可以将 SlimDX 二进制文件与您的应用程序一起分发。 SlimDX 有安装程序的唯一原因是同时安装 Microsoft 的 DirectX 运行时。 您的意思是只分发 Bin 文件夹?不需要安装? 好的,但是这个例子似乎不起作用,你有任何其他例子或带有源代码的示例(可执行文件)吗? *它适用于桌面和其他窗口,但不适用于游戏。 或 Betzalel - 不,我不是这方面的专家,但花一点时间在谷歌上搜索得到了很多结果。以上是关于C# 捕获直接 3D 屏幕的主要内容,如果未能解决你的问题,请参考以下文章