如何使用webBrowser控件从FileDownload弹出窗口下载文件

时间:2016-09-01 08:13:42

标签: c# .net winforms webbrowser-control

在我的winform应用程序中,我需要下载文件,下载过程:

  1. 点击下载按钮。
  2. 网站弹出文件下载窗口 - >用户可以按(打开/保存/取消)
  3. 但在后台网站流程中,它使用文件链接创建了一个新框架的src属性

    我需要的是获取链接并发送到UrlDownloadToFile方法

    我的代码:

    Browser.Document.GetElementById("downloadXls").InvokeMember("Click");
    Application.DoEvents(); // freezes
    
    HtmlWindow downloadFrame = Browser.Document.Window.Frames[2];
    string downloadLink = downloadFrame.Document.Body.GetAttribute("src");
    

    在我调用Application.DoEvents();进程冻结之后的问题,只有在我手动点击文件下载窗口时才会继续。

    如何通过弹出窗口并初始化downloadLink。

    我认为我可以处理它的一种方法是捕捉窗口事件并取消它。

    我尝试了什么:

    通过在表单设计器中添加来添加new_window事件:

    this.webBrowser.NewWindow += new System.ComponentModel.CancelEventHandler(this.webBrowser_NewWindow);
    

    在Winform类中:

    private void webBrowser_NewWindow(object sender, CancelEventArgs e)
    {
       e.Cancel = true;
    }
    

    但文件下载器不像窗口那样处理,还有什么可以作为答案?

    感谢。

0 个答案:

没有答案