DirectShow 过滤器以抓取特定窗口

Wil*_*989 1 winapi directshow gdi screen-capture

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

我已经查看了 PushSource,是的,它完成了它的目的,但是我希望虚拟网络摄像头抓取特定窗口(类似于您可以选择在 Skype 的共享屏幕中共享窗口的方式)。

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

Rom*_* R. 5

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

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