如何使用DirectShow api捕获桌面位图,不包括捕获应用程序



我想在我的应用程序下面捕获屏幕的位图。我的应用程序是顶层窗口。我在stackoverflow上找到了一个帖子:-我如何在我自己的窗口下捕获屏幕,不包括我自己的窗口

我遵循了上面帖子的最后一个答案,但是在捕获过程中我的捕获应用程序持续闪烁。

是否有任何解决方案来捕获屏幕位图下面我的顶层捕获应用程序使用DirectShow api而不引起闪烁?捕获的视频不包含捕获应用程序的任何GUI元素。

这基本上是你之前的问题的重复,我怎么能省略使用DirectShow api捕获按钮/区域?,您可以通过添加新的详细信息和链接引用来扩展它。

然而,DirectShow API不提供任何桌面捕获功能。它的CPushSourceDesktop示例确实提供了类似的东西:它演示了使用GDI API获得的桌面图像可以使用DirectShow作为视频流传输。也就是说,使用DirectShow API无论如何都没有桌面捕获。

使用GDI,你需要强制重新绘制位于应用程序UI下方的窗口。您可以通过隐藏应用程序和闪烁来实现这一点。其他方法涉及到绘制到助手DC的请求,这并不适用于所有应用程序,并且需要您自己从单独的窗口进行图像合成-然后您可以使用DirectShow流式传输结果。

最新更新