2015-09-10 24 views
-1

可以在WPF控件中显示特定显示的副本吗?我需要将连接到电脑的显示器镜像到我的应用程序中的一个盒子中(类似电视上的PIP)。目前我正在使用DWM API和DwmRegisterThumbnail功能,它工作正常,但它只能处理特定的窗口作为输入,而不是整个屏幕,但我需要捕获整个屏幕。我也尝试使用Graphics.CopyFromScreen()来周期性地更新目标视图,但它消耗了大量的CPU和内存+并不平滑。将特定屏幕镜像到WPF控件中

回答

0

你应该可以使用Expression Encoder SDK来完成它。检查  Microsoft.Expression.Encoder.ScreenCapture命名空间。

据我所知,用免费版本的表达式编码器你有10分钟的限制。

另一种选择是DirectShow。它是本地库,但有像.NET包装器DirectShow.NET。检查样本here

这里从codeproject其他几个环节:

http://www.codeproject.com/KB/audio-video/Tanvon_DirectShowFilters.aspx

http://www.codeproject.com/KB/directx/directxcapture.aspx

没有的DirectX:

http://www.codeproject.com/KB/audio-video/capvidscrn.aspx