我需要编写一个.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从中捕获图像。这是我能够做到的,不管控件是否可见,但是当工作站被锁定时它会让我失望。
谢谢,我试过了,但它的工作原理时,才会有正在进行的用户会话 - 不是当它运行作为服务或者当工作站被锁定时。 – Karun 2009-11-11 17:58:36