禁止WebBrowser控件中的“保存/打开”对话框

我有一个WebBrowser控件,它会自动将我登录到一个网站并尝试自动下载CSV数据。 一切都运行正常,除了当它试图下载CSV数据时,它会弹出一个对话框,询问我是要保存文件还是打开它(就像在IE中一样)。 我要做的是自动将CSV文件下载到我选择的文件中(或者更好,将CSV文件直接保存到字符串变量中)。 我似乎无法弄清楚如何压制对话框并自动捕获下载。 我搜索并找到了一些解决方案,然而,它们对我不起作用,因为:

1)我现在正在使用GUI。 所有这些都是在一个类中完成的(因此,诸如SendKeys之类的方法不是一个可行的解决方案)

2)下载来自安全站点并需要身份validation。 WebBrowser控件为我处理所有这些,但如果我使用WebRequest和WebResponse尝试捕获下载,我将不再进行身份validation。

我正在使用C#。 任何帮助,将不胜感激。

如果您熟悉C ++内部,盛江的解决方案是最好的。

否则看看iMacros for Internet Explorer(=免费软件浏览器宏录制器插件)是如何做到的。 它们似乎使用Windows钩子来抑制IE下载对话框 。

您可以连接自己的IDownloadManager实现,它可以安静地下载。 对于Windows窗体,这意味着您需要覆盖WebBrowser.CreateWebBrowserSiteBase方法以提供扩展控件站点。 有关详细信息,请查看Webbrowser控制下载 。

你不能压制文件下载对话框,因为这将是一个主要的安全风险。 如果您想自动执行此过程,我建议您调查其他路由以validation您的请求。