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

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

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

替代文字

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

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

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

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

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