【问题标题】:Capture a scrolling window contents screenshot捕获滚动​​窗口内容截图
【发布时间】:2011-04-22 10:47:59
【问题描述】:

我需要使用 .NET 捕获滚动窗口客户区的屏幕截图。我的首要任务是捕获网页截图。但这可能不是唯一的一个用例。例如,它也可以是记事本中的文本区域。

某些应用程序(FastStone Capture、PicPick)可以模拟用户行为以到达可滚动区域的隐藏部分并进行捕获。我正在寻找类似的东西或获得相同结果的替代方法的建议。

【问题讨论】:

  • +1 用于包含说明性图形。
  • 您对此有什么解决方案吗?我正在寻找适用于任何启用滚动窗口的通用解决方案。
  • 我找到了一个捕获网页的解决方案stackoverflow.com/a/3904596/177194 那里也有 WatiN:watin.org 我认为不可能使用通用方法来滚动 Windows 上的任何窗口,因为那里有有很多基于非本地/自定义运行时的软件。大多数浏览器和 Java 应用程序都需要单独的解决方案。

标签: c# .net browser scroll screenshot


【解决方案1】:

你看过 Snagit 吗? http://www.techsmith.com/download/accessories/default.asp

另外,这是一个 c# 实用程序,似乎可以满足您的要求:http://www.codeproject.com/KB/graphics/IECapture.aspx

【讨论】:

    【解决方案2】:

    您可以使用WM_PRINT 和 WM_PRINTCLIENT 让窗口将 WM_PAINT 重定向到屏幕外缓冲区。这比屏幕抓取要好,因为它确保窗口(在其他窗口后面)的模糊部分无论如何都会被绘制。如果您的目标窗口通过滚动子窗口位置来滚动,则应应用 WM_PRINT。只是也许它也有助于您的方案。

    【讨论】:

      【解决方案3】:

      我继续搜索并创建了 IECapt,这是一个开源工具,可以在其中使用 IE 截取网页截图。它有 С++ 和 .NET 版本。还有来自同一作者的基于 Qt/WebKit 的模拟:http://cutycapt.sourceforge.net

      这个工具不能直接回答我的问题,但它们都解决了原来的问题 90%。

      【讨论】:

        猜你喜欢
        • 2022-01-22
        • 1970-01-01
        • 2014-12-13
        • 1970-01-01
        • 2012-01-04
        • 2023-03-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多