我看到另一个听起来几乎相同的问题,但答案似乎是关于整个桌面屏幕截图:DirectShow Source filter using Dekstop window as source。
我看过PushSource,是的,它确实做了什么,但是我想让虚拟网络摄像头抓住一个特定的窗口(类似于你可以选择在Skype的共享屏幕上共享一个窗口)。
如何选择特定窗口作为虚拟网络摄像头的捕获? DirectShow API中是否有一个我不知道的具体方法呢?
答案 0 :(得分:4)
没有具体的方法。此外,从屏幕抓取的样本部分已经在DirectShow API之外,而是GDI。
所以解决方案很简单,你GetWindowRect
窗口的位置,然后只从屏幕抓取这个矩形,而不是整个桌面。或者,您可以将WM_PAINT
或WM_PRINTCLIENT
发送到窗口,以便将其绘制请求到提供的设备上下文中。