【问题标题】:API for getting screen region changes?用于获取屏幕区域更改的 API?
【发布时间】:2008-11-11 12:57:29
【问题描述】:

我正在为 Windows 编写一种屏幕录制应用程序,并希望知道屏幕/活动窗口的哪些区域何时以及哪些区域发生了变化。

是否有我可以挂钩的 Windows API 以获取屏幕更改通知?

或者我需要手动编写this 之类的东西吗? :(

我一直认为远程桌面使用某种 API 来检测屏幕的哪些区域发生了变化,并且只发回那些图像 - 这正是我需要的行为。

【问题讨论】:

    标签: windows winapi image-capture


    【解决方案1】:

    我认为 Windows 中没有 API 可以告诉您屏幕的哪些部分发生了变化。

    一种可能的方法是使用video mirror driver,就像 UltraVNC 使用的那样。

    【讨论】:

      【解决方案2】:

      【讨论】:

        【解决方案3】:

        您似乎需要做一些工作来检测屏幕变化。例如,此帖子位于tech-archive.net。有了这个,您可以将一个参考屏幕复制到 RAM,然后再取另一个并比较两者。由你来定义什么样的改变是有意义的。与desktop capture上的这篇文章类似。

        【讨论】:

          【解决方案4】:

          我认为远程桌面像命令一样流式传输 GDI。我不知道他们最初是如何捕获它们的。

          【讨论】:

            【解决方案5】:

            感谢大家的帮助。我最终编写了一个图像差分类,它似乎以惊人的速度计算出改变的矩形。我已经发布了它的工作原理here

            目前我只是在计时器中执行此操作,但也计划在输入事件后执行此操作。

            非常感谢您提供的链接 Boost - 我刚刚又看了一遍这个帖子,所以我会尽快查看。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2010-10-31
              • 2016-04-06
              • 1970-01-01
              • 2015-03-23
              相关资源
              最近更新 更多