我尝试使用以下代码捕获正在运行的应用程序的实时缩略图: http://community.bartdesmet.net/blogs/bart/archive/2006/10/05/4495.aspx
除了那些无边框的全屏窗口之外,我已经成功捕获了一些应用程序。
我实际上是想捕获一个UWP应用程序,该应用程序以全屏模式播放视频并将缩略图集成到我的应用程序中。我不需要获取它的位图图像,只需要实时显示即可。
我尝试更改
的值GWL_STYLE WS_VISIBLE WS_BORDER
但没有一个起作用。
在尝试Alt + Tab窗口时,Windows 10 DWM可以处理它并显示实时缩略图,因此我相信这可以在代码上进行一些小的修改。
谢谢!
答案 0 :(得分:0)
我使用Spy ++全屏检查了示例uwp应用程序的窗口样式。
样式是正常的,因此我对窗口句柄进行了硬编码,并且可以正常工作。经过一会儿的调试,事实证明EnumWindows方法没有返回此窗口,因此检查什么样式都没有关系。
所以我用这种方法寻找问题,并且有很多主题,例如: EnumWindows function in Win10 enumerates only desktop apps
答案 1 :(得分:0)
代替使用EnumWindows,使用此方法获取所有窗口,然后为所需的窗口处理程序插入过滤器逻辑
IntPtr thisWindow = IntPtr.Zero ;
IntPtr desktopWindow = GetDesktopWindow();
while (true)
{
if (desktopWindow == IntPtr.Zero)
break;
IntPtr nextWindow = FindWindowEx(desktopWindow, thisWindow, null, null);
if (nextWindow == IntPtr.Zero)
break;
/** your code here **/
thisWindow = nextWindow;
}