老实说不一定要webBrowser,这是Windows下载文件界面啊,不是VB.Net画出来的。
成都做网站、成都网站制作服务团队是一支充满着热情的团队,执着、敏锐、追求更好,是创新互联的标准与要求,同时竭诚为客户提供服务是我们的理念。成都创新互联公司把每个网站当做一个产品来开发,精雕细琢,追求一名工匠心中的细致,我们更用心!
真的是做下载文件,WebClient.DownloadFile方法就足够了,调用方法后会自动弹出Windows下载任务窗口。
在VS.NET里也提供了一个com接口,可以直接调用迅雷的dll,下载文件可以让你自由选择是用迅雷下载还是通过Windows下载任务来执行下载。
webBroser下载文件
FileInfo file = new System.IO.FileInfo(Server.MapPath(path));
if (File.Exists(Server.MapPath(path)))
{
string name = Path.GetFileName(Server.MapPath(path));
//存在文件
Response.Clear();
Response.Buffer = false;
//通知浏览器下载文件而不是打开
Response.ContentType = "application/octet-stream";
//下载的文件名
Response.AppendHeader("content-disposition", "attachment;filename=" + name);
//文件的大小
Response.AppendHeader("Content-Length", file.Length.ToString());
Response.WriteFile(path);
}
介绍一个更简单的方法给你,从webbrowser获取点击的超连接,然后自由选择下载,先在引用里引用com组件
然后在点击事件中加代码
string url = webBrowser1.Document.Links[1].GetAttribute("href");
ThunderAgentLib.AgentClass agent = new ThunderAgentLib.AgentClass();//创建对象
agent.AddTask(url, "默认保存文件名", "C:\\默认路径", "", "", 1, 0, 5);
agent.CommitTasks2(1);//提交
我用的是C#代码,VB.NET大同小异
方法是:先获取网页代码放在诸如richbox里面,在用这个控件的save方法存为格式为mht的网页
提供两个思路
用printscreen,将其保存到文件,再调用outlook发出去,但是您说的超出一屏,就麻烦了;
以下代码保存为文件,引用自MSDN,由于我的SD版本不支持我的outlook,所以暂时无法给发送邮件的例子,请参考吧!
system.Windows.Forms.SendKeys.Send("%{PRTSC}")
If Not System.Windows.Forms.Clipboard.GetDataObject() Is Nothing Then
Dim oDataObj As IDataObject = System.Windows.Forms.Clipboard.GetDataObject()
If oDataObj.GetDataPresent(System.Windows.Forms.DataFormats.Bitmap) Then
Dim oImgObj As System.Drawing.Image = oDataObj.GetData(DataFormats.Bitmap, True)
'To Save as Bitmap
oImgObj.Save("F:\Test.bmp", System.Drawing.Imaging.ImageFormat.Bmp)
'To Save as Jpeg
oImgObj.Save("D:\Test.jpeg", System.Drawing.Imaging.ImageFormat.Jpeg)
'To Save as Gif
oImgObj.Save("d:\Test.gif", System.Drawing.Imaging.ImageFormat.Gif)
End If
End If
2.另外出出报表,再调用outlook发出去,只给出数据性报表,而不一定是窗体本身;