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

16
我需要使用.NET捕获滚动窗口客户端区域的屏幕截图。我的首要任务是捕获网页截图,但这可能不是唯一的用例。例如,它也可以是记事本中的文本区域。
一些应用程序(FastStone Capture,PicPick)可以模拟用户行为以到达可滚动区域的隐藏部分并捕获它。我正在寻找类似于此或获取相同结果的替代方法的建议。

alt text


4
包含解释性图形应得到肯定。 - user180326
你有找到任何解决方案吗?我正在寻找一个适用于任何可滚动窗口的通用解决方案。 - Daniel Bogdan
1
我找到了一个捕获网页的解决方案 https://dev59.com/n2865IYBdhLWcg3wTctY#3904596 还有WatiN:http://watin.org 我认为不可能使用通用方法在Windows上滚动绝对任何窗口,因为有很多基于非本地/自定义运行时的软件。大多数浏览器和Java应用程序都需要个别解决方案。 - Alex Musayev
3个回答

3
你可以使用WM_PRINT和WM_PRINTCLIENT将Windows重定向到离屏缓冲区,这比屏幕截图更好,因为它确保了窗口的遮挡部分(在其他窗口后面)也能被绘制。如果你的目标窗口通过滚动子窗口位置来滚动,WM_PRINT应该适用。或许这也有助于你的情景。

2
我继续搜索并找到了IECapt——一个开源工具,可以使用IE在其中拍摄网页截图。它有C++和.NET版本。此外,同一作者还有基于Qt/WebKit的类似工具:http://cutycapt.sourceforge.net
这些工具虽然不是直接解决我的问题,但都能解决原始问题的90%。

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接