【问题标题】:Creating real-time monitor window of an application创建应用程序的实时监控窗口
【发布时间】:2010-12-13 13:49:58
【问题描述】:

我想创建一个可以显示应用程序当前内容的窗口,例如 Powerpoint 或 Adob​​e Reader。

当我运行我的应用程序时,我会首先选择我需要实时监控的当前正在运行的应用程序。完成后,我需要获取所选应用程序的当前内容并显示它。由于我的应用程序将是实时的,因此需要在所选应用程序更改时(以最小的延迟)捕获所选应用程序的内容,然后将其显示出来。

据我了解,这大致包括以下步骤: 1. 选择我要监控的应用程序 2.当该应用程序(客户区)的内容发生变化时获取“通知” 3. 捕获新内容并显示它

步骤 [1] 和 [3] 非常简单,我在这里找到了几种方法来执行它们。但是,对于舞台[2],我仍然一无所知。任何人都可以阐明如何实现这一目标吗?

干杯。

【问题讨论】:

  • 你会认为这在 Windows Vista/7 中使用 DWM 和 Aero Peek 变得容易得多,但我不知道有任何 API 可以利用 DWM 渲染。
  • 粗略浏览一下 DWM 表明它在 Win7/Vista 和 WDDM 版本中的工作方式不同。如果可以的话,我可能不会采用这种方法,因为我希望支持所有使用相同代码库的人。也没有在它的支持列表中找到任何提及 XP 的内容。

标签: winapi user-interface screenshot capture


【解决方案1】:

您可以查看UltraVNC,它完全符合您的要求(它具有单窗口模式和全屏模式)。它有不少于四种方法来完成您的第 2 步。

【讨论】:

    【解决方案2】:

    我能想到的一种显而易见的方法是定期拍摄应用窗口的快照,并将其与前一个窗口进行比较以进行更改。

    【讨论】:

    • 是的,我以前试过这个。我觉得应该有更好的方法来处理这个问题,轮询真的很粗糙,当没有其他方法存在/工作时,可以选择回退。
    猜你喜欢
    • 2011-06-04
    • 2010-09-18
    • 1970-01-01
    • 1970-01-01
    • 2018-12-30
    • 2021-04-15
    • 1970-01-01
    • 2014-09-17
    • 1970-01-01
    相关资源
    最近更新 更多