如何获取无边框全屏的dwp缩略图wpf/uwp window
How to get dwp thumbnail of borderless fullscreen wpf/uwp window
我尝试使用这些代码捕获 运行 应用程序的实时缩略图:
http://community.bartdesmet.net/blogs/bart/archive/2006/10/05/4495.aspx
我已经成功捕获了一些应用程序,除了那些无边框全屏windows。
我实际上是在尝试捕获以全屏模式播放视频的 UWP 应用程序,并将缩略图集成到我的应用程序中。我不需要得到它的位图图像,我只需要实时显示。
我尝试更改
的值
GWL_STYLE
WS_VISIBLE
WS_BORDER
但 none 有效。
当尝试 Alt+Tab windows 时,Windows 10 DWM 可以处理它并显示实时缩略图,所以我相信这可以通过对代码进行一些小的修改来实现。
谢谢!
我使用 Spy++ 检查了示例 uwp 应用程序的 window 样式。
样式是正常的,所以我硬编码了 window 句柄并且它起作用了。调试了一下,原来EnumWindows方法没有return这个window,所以检查什么样式都无所谓
所以我找了下这个方法的问题,题目很多,比如:
不使用 EnumWindows,而是使用此方法获取所有 windows 并为所需的 window 处理程序插入过滤器逻辑
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;
}
我尝试使用这些代码捕获 运行 应用程序的实时缩略图: http://community.bartdesmet.net/blogs/bart/archive/2006/10/05/4495.aspx
我已经成功捕获了一些应用程序,除了那些无边框全屏windows。
我实际上是在尝试捕获以全屏模式播放视频的 UWP 应用程序,并将缩略图集成到我的应用程序中。我不需要得到它的位图图像,我只需要实时显示。
我尝试更改
的值GWL_STYLE WS_VISIBLE WS_BORDER
但 none 有效。
当尝试 Alt+Tab windows 时,Windows 10 DWM 可以处理它并显示实时缩略图,所以我相信这可以通过对代码进行一些小的修改来实现。
谢谢!
我使用 Spy++ 检查了示例 uwp 应用程序的 window 样式。
样式是正常的,所以我硬编码了 window 句柄并且它起作用了。调试了一下,原来EnumWindows方法没有return这个window,所以检查什么样式都无所谓
所以我找了下这个方法的问题,题目很多,比如:
不使用 EnumWindows,而是使用此方法获取所有 windows 并为所需的 window 处理程序插入过滤器逻辑
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;
}