【问题标题】:ScreenShot of WebBrowser Control blank on 301/302 redirects301/302 重定向时 WebBrowser 控件的屏幕截图为空白
【发布时间】:2009-01-23 15:18:35
【问题描述】:

我正在使用 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);  

我已尝试访问 Windows.Forms.WebBrowser 包装的 ActiveXInstance,但我只能在出现错误(如 404/500)时获取代码,但我需要查看它是否为 301/302,以便我可以告诉页面重定向(我想我还需要重定向 url)

如果一切都失败了,我可以做一个 HTTPWebRequest 并事先整理好,但是我会为 1 个页面发出 2 个请求。

谢谢!

【问题讨论】:

    标签: .net com browser webbrowser-control


    【解决方案1】:

    根据 msdn,webbrowser 控件不支持 drawtobitmap。你必须找到其他方法

    【讨论】:

      【解决方案2】:

      它没有官方支持,但它可以工作(不应该依赖它)。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-01-13
        • 2012-03-21
        • 2018-01-13
        • 2019-04-23
        • 2012-05-04
        相关资源
        最近更新 更多