【问题标题】:Redirect application's graphical output in Windows Vista/7 (with DWM)在 Windows Vista/7 中重定向应用程序的图形输出(使用 DWM)
【发布时间】:2010-06-07 09:38:38
【问题描述】:

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

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

【问题讨论】:

    标签: .net wpf windows aero dwm


    【解决方案1】:

    您可以致电DwmRegisterThumbnail,DWM 将在您的窗口内绘制实时缩略图。

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

    【讨论】:

    • 这适用于缩略图。但是仍然存在 Flip3D (Win+Tab) 或 Switcher (insentient.net) 如何绘制窗口内容的问题
    • 这有点晚了,但万一有人仍然感兴趣 - msdn.microsoft.com/en-us/library/aa969541(v=vs.85).aspx 上有关 DWM 缩略图的 MSDN 文章指出,这些缩略图不能用于获得像 Flip3D 这样的效果。顺便说一句,我找到了一个 DLL dwmredir.dll 并查看了它的导出函数,我认为 dwmredir.dll 部分负责将窗口绘图重定向到内部缓冲区。
    猜你喜欢
    • 1970-01-01
    • 2023-04-03
    • 1970-01-01
    • 2023-03-03
    • 2011-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-01
    相关资源
    最近更新 更多