c# - 下载文件时显示自定义对话框

标签 c# browser webbrowser-control

正在寻找解决我的问题的方法。我们正在为客户端的产品中构建一个 Web 浏览器控件,他们需要能够检测到网站上何时有文件上传框,然后它需要打开自己的文件浏览器窗口,而不是启动 Windows 7 文件浏览器窗口定制设计的一个

是否有浏览器事件允许我们捕获该事件?

最佳答案

您可以hook up your own download manager仅在 Web 浏览器控件主机进程中有效,方法是在控件站点中实现 IServiceProvider 并实现 QueryService 以在 Web 浏览器控件请求时返回 IDownloadManager 对象

在 Windows 窗体的 Webbrowser 类中,默认情况下会为您创建一个控制站点,但您可以override the control site通过创建您自己的 WebBrowserSiteBase类并重写 WebBrowser.CreateWebBrowserSiteBase 方法。如果您使用 WPF、Silverlight 或 Windows Phone 中的 Web 浏览器控件,则不存在此类扩展性。

我建议您使用 C++ 编写下载管理器,因为如果您使用 C# 进行编码,则需要大量的互操作。有一个使用 native 下载管理器的 C# Web浏览器控件的示例 here .

关于c# - 下载文件时显示自定义对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12881729/

相关文章:

c# - AppHarbor 预编译错误

javascript - 如何解析 xml 并在 javascript 中从中提取 xslt 元素

browser - 使用Casper.js,是否可以接受浏览器权限提示?

c# - AES 加密。从 Python (pyCrypto) 到 .NET

c# - 如何使用带有 STRING 参数的 SqlDependency

javascript - 如何在 Unity/C# WebGL 平台中调用 async/await JavaScript 函数?

javascript - 对于同一浏览器,在 Javascript 中使用不同的 URL 获取不同的版本信息

c# - WPF webbrowser - 下载 HTML?

c# - 如何在 C# Web 浏览器控件中禁用警报框 javascript?

c# - 在 WebBrowser 的另一个域的 iFrame 中获取文本的任何解决方法?