在 Windows Vista/7 中重定向应用程序的图形输出(使用 DWM)

发布于 2024-09-04 17:38:49 字数 326 浏览 1 评论 0原文

我想创建一个桌面管理器,它获取所有正在运行的应用程序的信息,包括状态和屏幕截图,以便在我的虚拟空间(可能以 3D 形式)中显示和操作它们。它可以被视为 Windows 本身之上的另一个抽象层。

由于许多本机 Windows Vista/7 功能(如 Flip 3D 和实时缩略图)能够实时显示每个窗口的活动,例如视频在任务栏的缩略图中持续播放,我认为 DWM 允许应用程序将其输出重定向到其他地方或某些特殊进程能够收集其他应用程序的图形输出(可能仅是子进程的)。 Microsoft 是否发布了一组公共 API 来执行此操作?如果不能,技术上可行吗?如果我将范围限制为仅使用 WPF 的 .NET 应用程序,会不会更容易?

I want to create a desktop manager that takes informations of all running applications including states and screenshots to display and manipulate them in my virtual space (probably in 3D). It can be considered as another layer of abstraction on top of Windows itself.

Because many native Windows Vista/7 features like Flip 3D and Live Thumbnails are able to show each window's activities in real-time e.g. video keeps playing in taskbar's thumbnail, I think DWM allows an application to redirect its output to somewhere else or some special processes are able to collect other applications' graphical outputs (maybe of child processes only). Has Microsoft released a set of public APIs to do so? If not, is it technically possible? And is it easier if I limit my scope to just .NET applications with WPF?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

筱果果 2024-09-11 17:38:49

您可以调用 DwmRegisterThumbnail 并DWM 将在您的窗口内绘制实时缩略图。

我认为没有受支持的方法来获取这些数据并自己操作它,但是有一些黑客,但我自己从未使用过它们。

You can call DwmRegisterThumbnail and the DWM will draw the live thumbnail inside your window.

I think there's no supported way to get that data and manipulate it yourself but there are some hacks out there but I never used them myself.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文