捕获滚动​​窗口内容屏幕截图

时间:2010-10-07 15:36:32

标签: c# .net browser scroll screenshot

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

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

alt text

3 个答案:

答案 0 :(得分:3)

您可以使用窗口将WM_PAINT重定向到具有WM_PRINT和WM_PRINTCLIENT的屏幕外缓冲区。这比screenscraping更好,因为它确保窗口的遮挡部分(在其他窗口后面)无论如何都被绘制。如果目标窗口通过滚动子窗口位置滚动,则应该应用WM_PRINT。也许它也可以帮助您的方案。

答案 1 :(得分:2)

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

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

答案 2 :(得分:1)

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

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