C# 截图DirectX全屏游戏

C# 截图DirectX全屏游戏,c#,C#,有许多关于Stackoverflow的问题提出了类似的问题,但都没有一个令人满意的答案 我正在用C#和WPF创建一个开源应用程序Captura。它可以很好地捕获特定窗口或整个桌面。 但是,当涉及到DirectX全屏游戏或使用OpenGL制作的游戏时,只会获得一张空白图像 我使用User32和Gdi32尝试了System.Drawing.Graphics.CopyFromScreen和BitBlt,但其他都不起作用 请注意,我想用C语言来做这件事,而不是C++。我想要截图而不是视频 请不要告诉我有

有许多关于Stackoverflow的问题提出了类似的问题,但都没有一个令人满意的答案

我正在用C#和WPF创建一个开源应用程序Captura。它可以很好地捕获特定窗口或整个桌面。 但是,当涉及到DirectX全屏游戏或使用OpenGL制作的游戏时,只会获得一张空白图像

我使用User32和Gdi32尝试了System.Drawing.Graphics.CopyFromScreen和BitBlt,但其他都不起作用

请注意,我想用C语言来做这件事,而不是C++。我想要截图而不是视频


请不要告诉我有关Gdi32或系统的信息。我已经知道的绘图方式来自—“当Direct3D设备进入全屏模式时,它被授予对视频卡的独占访问权限。来自—“当Direct3D对象采用独占模式时,除全屏设备外的所有设备都处于丢失状态。”没有办法捕获全屏Direct3d窗口,但我见过可以捕获全屏游戏的软件(维基百科上有一个列表)。他们是怎么做到的???通过连接渲染器。。。使用SDK。举个C#示例:这里的详细信息:我已经验证了桌面复制API是否适用于一些新游戏。