DirectShow过滤器以获取特定窗口

时间:2012-09-26 14:46:33

标签: winapi directshow gdi screen-capture

我看到另一个听起来几乎相同的问题,但答案似乎是关于整个桌面屏幕截图:DirectShow Source filter using Dekstop window as source

我看过PushSource,是的,它确实做了什么,但是我想让虚拟网络摄像头抓住一个特定的窗口(类似于你可以选择在Skype的共享屏幕上共享一个窗口)。

如何选择特定窗口作为虚拟网络摄像头的捕获? DirectShow API中是否有一个我不知道的具体方法呢?

1 个答案:

答案 0 :(得分:4)

没有具体的方法。此外,从屏幕抓取的样本部分已经在DirectShow API之外,而是GDI。

所以解决方案很简单,你GetWindowRect窗口的位置,然后只从屏幕抓取这个矩形,而不是整个桌面。或者,您可以将WM_PAINTWM_PRINTCLIENT发送到窗口,以便将其绘制请求到提供的设备上下文中。