2009-11-11 60 views
2

我需要编写一个.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从中捕获图像。这是我能够做到的,不管控件是否可见,但是当工作站被锁定时它会让我失望。

回答