Снимок экрана WebBrowser Control пустой на перенаправления 301/302 - PullRequest
0 голосов
/ 23 января 2009

Я использую некоторый код из SmallSharpTools Web Preview, чтобы получить снимки экрана с веб-сайтами, но я получаю пустой снимок экрана, если URL-адрес возвращает перенаправление 301/302.

        WebBrowser wb = new WebBrowser(); 
        wb.ScrollBarsEnabled = false;
        wb.Size = new Size(1024, 768);
        wb.ScriptErrorsSuppressed = true;
        wb.AllowNavigation = true; 
        wb.NewWindow += new System.ComponentModel.CancelEventHandler(wb_NewWindow);
        wb.Navigate(url);
        // wait for it to load
        while (wb.ReadyState != WebBrowserReadyState.Complete)
        {
            Application.DoEvents();
        } 
        bitmap = new Bitmap(width, height);
        Rectangle rect = new Rectangle(0, 0, width, height);
        wb.DrawToBitmap(bitmap, rect);  

Я пытался получить доступ к ActiveXInstance, который упаковывает Windows.Forms.WebBrowser, но я могу получить коды только в случае ошибки (например, 404/500), но мне нужно проверить, не было ли это 301/302, чтобы я мог могу сказать перенаправить страницу (я думаю, что мне также понадобится URL перенаправления)

Если ничего не помогло, я мог бы сделать запрос HTTPWebRequest и разобраться перед этим, но тогда я бы сделал 2 запроса на 1 страницу.

Спасибо!

Ответы [ 2 ]

1 голос
/ 13 января 2010

Официально не поддерживает, но может работать (на него не следует полагаться).

1 голос
/ 15 декабря 2009

элемент управления webbrowser не поддерживает drawtobitmap в соответствии с msdn. вам придется найти другой путь

...