WinForm文件下载 截取文件下载地址 拦截系统下载对话框

情况:在WinForm上添加了一个WebBrowser控件,想要实现的是:当点击WebBrowser的网页链接是一个可下载文件的时候,自动弹出我自己的下载对话框(像QQ浏览器、360浏览器等),而不是系统默认的IE文件下载对话框。

问题:当点击的链接是https://sm.myapp.com/original/im/QQ9.0.1-9.0.1.23153.exe这种的时候,能弹出我自己的下载对话框。但当点击的链接地址像https://pm.myapp.com/invc/xfspeed/qqsoftmgr/QQSoftDownloader_v1.1_webnew_2@.exe的时候(不确定是因为含@还是含_),会弹出系统的IE文件下载对话框。还有就是像点击的链接是http://go.microsoft.com/fwlink/?LinkId=109286这种的时候也是弹出的系统默认IE文件下载对话框。

请问:怎么才能实现像QQ浏览器、360浏览器、搜狗浏览器等等这些,所有弹出的文件下载对话框都使用自己的,而不是系统默认的。

拦截 getopenfilename 这个 api 函数,然后调用你的对应的对话框或者代码逻辑。

是不是跟自己的默认浏览器有关系