【发布时间】:2009-11-11 17:14:51
【问题描述】:
我需要编写一个 .NET 应用程序来定期捕获各种网页的屏幕截图。应用程序需要在无人参与模式下作为 Windows 服务运行 - 当没有用户会话或工作站被锁定时。类似于:(Screenshot of process under Windows Service) 的情况,只是,我需要在网页而不是进程上执行此操作。
当我尝试使用 PrintWindow API 时,我能够捕获非活动或隐藏的窗口,但在工作站锁定时获得黑色图像。尝试了这种方法 (www.devnewsgroups.net/group/microsoft.public.dotnet.framework.windowsforms/topic34231.aspx) 但不起作用。
我知道这是可能的,因为有像 WebShot (www.websitescreenshots.com) 这样的应用程序能够做到这一点 - 即使在工作站被锁定或作为服务运行时也可以捕获网页的屏幕截图。
我错过了什么?我怎样才能让它工作?
非常感谢您的宝贵时间。
编辑:关于我的方法的更多信息 - 我正在使用以编程方式创建的 .NET WebBrowser 控件。我在浏览器控件中加载网页并使用 PrintWindow API 从中捕获图像。无论控件是否可见,我都能做到这一点,但是当工作站被锁定时它会让我绊倒。
【问题讨论】:
标签: c# screen-capture