开发者

WebBrowser.DrawtoBitmap() generating blank images for few sites consistently

I've been using WebBrowser.DrawtoBitmap() in my asp.net page running in separate STA thread to capture web pages as an image. But I found that I'm getting blank images for few sites consistently. I'm aware that the method is not 'officially' supported but it would be nice if someone can p开发者_JS百科rovide me any reason or a work around for these blank images issue.


DrawToBitmap has limitations and dont always work as expected. Try instead work with native GDI+

Here is example


This problem can be solved by giving focus to the control, so it'll draw properly.

This'd be an option, but the control would have to be visible: WebBrowser.DrawToBitmap() or other methods?

As far as I've heard about the problem is that its fixed when you click the webbrowsercontrol. Therefore doing this programmatic should solve the problem :)

I haven't tested this, but in theory I think its possible to launch a windows form in an asp.net application. Reference to system.windows.forms and to drawing, then use application.run on a separate thread. Note: I'm on my phone so I can't test it, but it might actually work.


You're not hitting pages with Flash?

I had to do this, in order to get my WebBrowser control to work:

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);
   }
}

I seriously have no idea what I was doing, I just found it somewhere and it was to enable Flash. But I think I haven't had to much problems with it since.

I use it to do screenshots. I run it on a separate STA thread (as a windows service - nothing visible).

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜