Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在无人值守模式下捕获网站的屏幕截图?_C#_Screen Capture - Fatal编程技术网

C# 如何在无人值守模式下捕获网站的屏幕截图?

C# 如何在无人值守模式下捕获网站的屏幕截图?,c#,screen-capture,C#,Screen Capture,我需要编写一个.NET应用程序,定期捕获各种网页的截图。当没有用户会话或工作站被锁定时,应用程序需要在无人值守模式下作为windows服务运行。类似于:()的情况,只是,我需要在网页上而不是进程上执行此操作 当我尝试使用PrintWindow API时,我能够捕获非活动或隐藏的窗口,但当工作站被锁定时会得到一个黑色图像。尝试了这种方法(www.devnewsgroups.net/group/microsoft.public.dotnet.framework.windowsforms/topic3

我需要编写一个.NET应用程序,定期捕获各种网页的截图。当没有用户会话或工作站被锁定时,应用程序需要在无人值守模式下作为windows服务运行。类似于:()的情况,只是,我需要在网页上而不是进程上执行此操作

当我尝试使用PrintWindow API时,我能够捕获非活动或隐藏的窗口,但当工作站被锁定时会得到一个黑色图像。尝试了这种方法(www.devnewsgroups.net/group/microsoft.public.dotnet.framework.windowsforms/topic34231.aspx),但不起作用

我知道这是可能的,因为有像WebShot(www.websiteshreenshots.com)这样的应用程序能够做到这一点——即使在工作站被锁定或作为服务运行时也能捕获网页的屏幕截图

我错过了什么?我怎样才能让它工作

谢谢你抽出时间


编辑:关于我的方法的更多信息-我正在使用以编程方式创建的.NET WebBrowser控件。我将网页加载到浏览器控件中,并使用PrintWindowAPI从中捕获图像。无论控件是否可见,我都能做到这一点,但当工作站被锁定时,它会使我绊倒。

BrowserShots()是一个开源应用程序,它似乎与您有类似的目标-它们可能已经解决了您的问题。不幸的是,他们的网站目前似乎有点破损。

由于您只渲染网站,而没有获得不同程序的屏幕截图,您可以尝试WebBrowser.DrawToBitmap

这样您就不必担心登录状态


谢谢,我试过了,但它只有在用户会话正在进行时才起作用,而不是在作为服务运行或工作站被锁定时起作用。