cppwebbrowser下载文件对话框的问题,

CruelYoung123 2007-04-05 05:11:16
在使用WebBrowser制作一个简易浏览器时,当请求的页面是一个文件,需要下载时,会弹出Windows自带的下载对话框。请问怎样取消这个对话框,然后调用自己的下载窗口?谢谢!

有些地址是有文件名的。如http://xx.com/1.zip; 这样的好像自己可以分析出,但有的没有,http://xx.com/down.asp?id=xxx这样的就无法直接分析出了。

哪位大侠做过这样的?

Implementing a Custom Download Manager
http://msdn.microsoft.com/workshop/browser/ext/overview/downloadmgr.asp

这个看过了,没感觉。
...全文
269 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
CruelYoung123 2007-04-05
  • 打赏
  • 举报
回复
sczyq(我又...........)
的方法我试试。
CruelYoung123 2007-04-05
  • 打赏
  • 举报
回复
主要是提取那个地址的问题也。
蒋晟 2007-04-05
  • 打赏
  • 举报
回复
写COM组件注册到HKEY_LOCAL_MACHINE\Software\Microsoft\Internet Explorer\DownloadUI或者
HKEY_CURRENT_USER\Software\Microsoft\Internet Explorer\DownloadUI,实现IUnknown和IDownloadManager,剩下的就是建立http连接下载文件了
CruelYoung123 2007-04-05
  • 打赏
  • 举报
回复
怎样取得真实文件下载的URL
蒋晟 2007-04-05
  • 打赏
  • 举报
回复
http://msdn.microsoft.com/library/default.asp?url=/workshop/networking/moniker/monikers.asp
sczyq 2007-04-05
  • 打赏
  • 举报
回复
因为使用 TWebBrowser 与 TCppWebBrowser 差不多,可参考一下

//---------------------------------------------------------------------------
void __fastcall TWebBrowserForm::WebBrowserBeforeNavigate2(TObject *ASender,
const IDispatch *pDisp, OleVariant &URL, OleVariant &Flags,
OleVariant &TargetFrameName, OleVariant &PostData, OleVariant &Headers,
WordBool &Cancel)
{
AnsiString strURL = AnsiString(URL);
// 先提取strURL 的 取后缀名
// 判断 strURL 的缀名文件名是否是可下载的文件
if (func(strURL))
{
TDownloadDialog * Dialog = new TDownloadDialog(this);
....
Dialog->ShowModal();
delete Dialog;
Cancel = true; // 不再继续读取.
}
}

1,316

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧