Monitor上当前运行的应用程序的ScreenCapture

时间:2015-07-01 15:03:20

标签: directx screen-capture

我想创建一个独立的应用程序,它可以捕获屏幕运行时并将其显示在外部显示器上。 我知道只是重复监视器工作,但我有兴趣为它制作一个应用程序。

我通过各种论坛问题寻求解决方案,并倾向于以DirectX方式进行。 但事实证明,DirectX方式只能捕获通过d3d运行的应用程序的屏幕。 使用DirectX无法创建独立的screencapturer。

如果我错了,请纠正我。我根据问here

提出了这个结论

有人建议在同一个帖子中使用DXGI方法。

请帮帮我。

我再次提到我想创建一个独立的屏幕录制应用程序,它将主桌面上运行的内容转换为外部监视器。

我是DirectX编程的新手,所以我不知道所涉及的错综复杂。 关于创建最佳(最快)独立屏幕捕获应用程序的任何建议都表示赞赏。

1 个答案:

答案 0 :(得分:1)

实际上,DirectX不仅可以捕捉由d3d绘制的窗口,还可以捕获整个屏幕,如下所示:http://imgur.com/FojhNwA

我昨天刚完成这个程序:P

在我的电脑上,使用gdi +(Bitblt)花费大约60ms来拍摄1080p截图,但只需9ms即可截取并通过DirectX渲染帧(IDXGIOutputDuplication)。

这是我尝试过的最快的方式,但遗憾的是它似乎只适用于Windows 8(我无法在Windows 7计算机上运行此程序)。

您可以从这里查看信息: https://msdn.microsoft.com/en-us/library/windows/desktop/hh404487

该文章中有一些示例代码。