Webbrowser 取消下载提示框

本文介绍如何使用WebBrowser组件实现网页文件的自动下载功能,通过调用URLDownloadToFile方法替代默认的下载提示框,并取消用户介入。

在使用Webbrowser抓取网页信息时,碰到需要下载文件,这时需要用户介入操作,如何避免:

 

首先引进

[DllImport("urlmon.dll", CharSet = CharSet.Auto, SetLastError = true)]
          static extern Int32 URLDownloadToFile(
              [MarshalAs(UnmanagedType.IUnknown)] object pCaller,
              [MarshalAs(UnmanagedType.LPWStr)] string szURL,
              [MarshalAs(UnmanagedType.LPWStr)] string szFileName,
              Int32 dwReserved,
              IntPtr lpfnCB);
再添加  
this.WebBrowser.Navigating += WebBrowser_Navigating;

void WebBrowser_Navigating(object sender, WebBrowserNavigatingEventArgs e)
{
           //设置下载条件
if (e.Url != null && e.Url.AbsolutePath.IndexOf("/V1/Delivery/Download") > -1) { try { if (Citation.IsValid) { UIManager.ProgressMessageHandler(this, new UIEventArgs { Message = "Downloading "+ e.Url.Segments[e.Url.Segments.Length - 1]});                      string fullname = Path.Combine(pdfSavePath_, e.Url.Segments[e.Url.Segments.Length - 1]);                      
                     //在这替换“下载提示框”,并自定义下载
                     
int response = URLDownloadToFile(null, e.Url.AbsoluteUri, fullname, 0, IntPtr.Zero); if (response == 0) { Citation.IsDownloaded = true; UIManager.ProgressMessageHandler(this, new UIEventArgs { Message = Citation.Name + " has downloaded." }); } } } catch { } finally {
                 //取消“下载提示框”,不会再提示用户 e.Cancel
= true; } } }

 



                 

转载于:https://www.cnblogs.com/yipeng-yu/p/4901158.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值