2016-01-24 3 views
0

Я загружаю файлы с windows.Forms.WebBrowser C#, после запуска InvokeScript и получения моего файла, я использую Application.DoEvents для перехода к следующему файлу, но диалог загрузки остается открытым и я застрял в Application.DoEvents и не могу ничего сделать.Диалоговое окно загрузки файла в WebBrowser

Как я могу отменить или закрыть этот диалог загрузки?

Мой код:

 HtmlElement head = webBrowser.Document.GetElementById("btnExcelExport"); 
    HtmlElement scriptEl = webBrowser.Document.CreateElement("script"); 
    IHTMLScriptElement element = (IHTMLScriptElement)scriptEl.DomElement; 
    element.text = "function DownloadFile() {$('#btnExcelExport').click()}"; 
    head.AppendChild(scriptEl); 
    webBrowser.Document.InvokeScript("DownloadFile"); 

    HtmlElementCollection iFrames =  webBrowser.Document.GetElementsByTagName("iframe"); 
       for (int i = 0; i < iFrames.Count; i++) 
       { 
        string src = iFrames[i].GetAttribute("src"); 
        if (src.Contains("Export")) 
        { 
         txt_url.Text = "https://test.com" + src; 

         string cooki = webBrowser.Document.Cookie; 
         int response = URLDownloadToFile(0, "https://test.com" + src, @"C:\temp\Test.txt", 0, 0); 

        } 

       } 
       Application.DoEvents(); 
//....got to next file 

ответ

0

я вниз знать, что случилось с моим вопросом, а почему я получаю вниз скорость, но каким-либо образом я нашел это решение.

Вам нужно использовать йо ходового событие и там проверить, вы в использовании URL загрузки отмените скачать «e.Cancel = истинный»

private void webBrowser_Navigating(object sender,WebBrowserNavigatingEventArgs e) 
     { 

      if (e.Url.ToString().Contains("Download")) 
      { 
       e.Cancel = true; 
      } 
      } 
Смежные вопросы