Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/32.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# WebBrowser.DrawtoBitmap()始终为少数站点生成空白图像_C#_Asp.net_Screenshot_Drawtobitmap - Fatal编程技术网

C# WebBrowser.DrawtoBitmap()始终为少数站点生成空白图像

C# WebBrowser.DrawtoBitmap()始终为少数站点生成空白图像,c#,asp.net,screenshot,drawtobitmap,C#,Asp.net,Screenshot,Drawtobitmap,我一直在asp.net页面中使用WebBrowser.DrawtoBitmap()在单独的STA线程中运行,以将网页捕获为图像。但我发现,我得到了几个网站的空白图像一致。我知道该方法没有“官方”支持,但如果有人能为我提供任何理由或解决这些空白图像问题的方法,那就太好了 这个问题可以通过将焦点放在控件上来解决,因此它将正确绘制 这是一个选项,但控件必须可见: 据我所知,这个问题在单击WebBrowser控件时得到修复。因此,这样做可以解决问题:) 我还没有对此进行测试,但理论上我认为可以在asp.

我一直在asp.net页面中使用WebBrowser.DrawtoBitmap()在单独的STA线程中运行,以将网页捕获为图像。但我发现,我得到了几个网站的空白图像一致。我知道该方法没有“官方”支持,但如果有人能为我提供任何理由或解决这些空白图像问题的方法,那就太好了

这个问题可以通过将焦点放在控件上来解决,因此它将正确绘制

这是一个选项,但控件必须可见:

据我所知,这个问题在单击WebBrowser控件时得到修复。因此,这样做可以解决问题:)

我还没有对此进行测试,但理论上我认为可以在asp.net应用程序中启动windows窗体。 参考system.windows.forms和绘图,然后在单独的线程上使用application.run。
注意:我正在使用手机,因此无法测试它,但它实际上可能会工作。

DrawToBitmap
有局限性,并不总是按预期工作。尝试使用本地GDI+


这里是

你不是在用Flash浏览网页吗

为了让我的
WebBrowser
控件正常工作,我必须这样做:

using System;
using System.Windows.Forms;

public class WebBrowserEx : WebBrowser
{
   public WebBrowserEx()
   {
   }

   protected override void WndProc(ref Message m)
   {
      switch (m.Msg)
      {
         case 0x021:
         case 0x201:
         case 0x204:
         case 0x207:
             base.DefWndProc(ref m);
             return;
      }
      base.WndProc(ref m);
   }
}
我真的不知道我在做什么,我只是在某处找到了它,它是为了启用Flash。但我想从那以后,我就没有遇到太多问题了


我用它做截图。我在一个单独的STA线程上运行它(作为windows服务-不可见)。

只有当
WebBrowser
控件实际可见时(在我使用的表单上?),此方法才有效。是的,他以我的链接为例:(@Aidiakapi我不接受你的链接,我从另一个问题的答案中得到了它。好吧,我也是。但是另一个问题。@NLV检查一下我在我的答案中添加了什么。如果你最近在2015年6月(KB3057839)遇到了这个问题,这个问题在2015年7月得到了修复(KB3070102)。我如何以编程方式单击WebBrowser控件?Will Focus()工作?@NVL也许吧,但我不能保证。好的,Focust()力的工作。我怎么能用编程方式点击它?我会打开我的电脑并检查它。@NVL我的电脑正在使用,但这个网站的要求是一样的:试过了。没有效果。总是被捕获为一张空白图片。我现在试过我的代码,但我也不能得到雅虎的图片。不过,我对发生的事情有一个理论。当我访问“yahoo.com”时我首先得到一个301,它把我带到“www.yahoo.com”,在那里我得到了一个302。然后我被重定向到“se.yahoo.com”(我在瑞典),这是我得到的第一个200。我想网络浏览器无法处理重定向。我也无法得到“se.yahoo.com”的图像。奇怪的是。有什么办法解决这个问题吗?相关问答: