<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
<channel>
<title><![CDATA[一起奔腾]]></title>
<link>http://www.17benteng.com/</link>
<description><![CDATA[IDC网站天使_IDCWebAngel_电影防盗链_音乐防盗链_flash防盗链_mp3防盗链_rm防盗链_图片防盗链_流媒体防盗链_IIS防盗链]]></description>
<language>zh-cn</language>
<copyright><![CDATA[Copyright 2005 PBlog3 v2.8]]></copyright>
<webMaster><![CDATA[7180001@qq.com(奔腾的心)]]></webMaster>
<generator>PBlog2 v2.4</generator> 
<image>
	<title>一起奔腾</title>
	<url>http://www.17benteng.com/images/logos.gif</url>
	<link>http://www.17benteng.com/</link>
	<description>一起奔腾</description>
</image>

			<item>
			<link>http://www.17benteng.com/article.asp?id=83</link>
			<title><![CDATA[IIS防火墙,防盗链,URL重写,关键词过滤,SQL注入防护,上传攻击防护等,1.0.1.1版]]></title>
			<author>7180001@qq.com(admin)</author>
			<category><![CDATA[IDC网站天使]]></category>
			<pubDate>Sun,28 Dec 2008 15:15:32 +0800</pubDate>
			<guid>http://www.17benteng.com/default.asp?id=83</guid>
		<description><![CDATA[<span style="color:Red">IDC网站天使官方交流群43453676</span><br/><br/>好久没有更新了,让大家久等了!<br/>这次主要重写了过滤算法与修正了一些重要的bug<br/>详细情况大家看看更新日志吧!<br/>另因工作的原因可能暂时无法为程序加新功能了,所以很抱歉了!不过我会一直做下去的,而且个人一直可以免费使用!<br/><br/>下载地址<a target="_blank" href="http://www.17benteng.com//soft/IDCWebAngel(1.0.1.1).rar" rel="external">/soft/IDCWebAngel(1.0.1.1).rar</a><br/><br/>网站天使出生以来已经差不多快有一年了,这中间谢谢大家的支持!<br/>另外有问题请直接到我的blog反馈,我会尽力解决的!]]></description>
		</item>
		
			<item>
			<link>http://www.17benteng.com/article.asp?id=82</link>
			<title><![CDATA[超级IIS防火墙,集防盗链,URL重写,关键词过滤,SQL注入防护,上传攻击防护等,1.0.1.0版]]></title>
			<author>7180001@qq.com(admin)</author>
			<category><![CDATA[IDC网站天使]]></category>
			<pubDate>Sat,25 Oct 2008 15:37:35 +0800</pubDate>
			<guid>http://www.17benteng.com/default.asp?id=82</guid>
		<description><![CDATA[新版本更稳定,他就像一个成熟的男人<br/><br/><span style="color:Red">IDC网站天使官方交流群43453676</span><br/><br/>1.0.1.0<br/><br/>2008-10-25<br/>重写编写关键词过滤核心，使得关键词过滤支持UTF8,ANSI,UNICODE且运行速度更快<br/><br/>下载地址<a target="_blank" href="http://www.17benteng.com//soft/IDCWebAngel(1.0.1.0).rar" rel="external">/soft/IDCWebAngel(1.0.1.0).rar</a>]]></description>
		</item>
		
			<item>
			<link>http://www.17benteng.com/article.asp?id=81</link>
			<title><![CDATA[盗版微软XP系统防止20号出现黑屏及出现黑屏后的解决办法]]></title>
			<author>7180001@qq.com(admin)</author>
			<category><![CDATA[技术文章]]></category>
			<pubDate>Thu,16 Oct 2008 15:43:42 +0800</pubDate>
			<guid>http://www.17benteng.com/default.asp?id=81</guid>
		<description><![CDATA[　　10月20日微软将在中国再次对盗版WindowsXP进行打击，并首次对盗版Office进行验证，装有盗版Windows　XP及Office将被强制插入多处明显的提醒标识。除不断弹出提醒盗版用户正在使用盗版软件外，微软还将采取黑屏等手段来打击盗版软件。<br/><br/>　　据了解，为打击盗版，微软一直在寻求解决方法，包括联合相关版权部门打击盗版，不过收获甚小。2007年3月微软在中国推出Windows正版增值计划（WGA通知），同时Office的正版增值计划OGA也是首次在国内发布。其中WGA针对Windows　XP专业版的用户，OGA针对Office　XP、Office　2003和Office　2007的用户，这两个通知可通过软件升级自动下载到用户电脑中。<br/>　<br/>　　“这两个验证工具，可以自动检测验证用户电脑上安装的Windows　XP和Office是否为正版软件，如果是使用的盗版软件，则会不断收到提示信息，还将频繁遭遇黑屏。”微软相关负责人向记者表示。　<br/><br/>　　据微软相关负责人透露，此次涉及到的使用盗版软件遭遇黑屏主要是指，在收到提示后的盗版用户电脑界面将出现黑色背景，但不影响其他使用功能，用户可以通过手动调回，不过该黑色背景会每60分钟出现一次。<br/><br/><br/>方法一：<br/><br/>关闭自动更新(需要升级xp系统补丁的话，我们可以利用360安全卫士等第三方软件来升级)<br/><br/>具体操作为：右键单击“我的电脑”-“属性” ，在系统属性窗口中选择“自动更新”选项卡，在“通知设置”一栏选择“关闭自动更新”一项。<br/><br/>方法二：<br/><br/>第二，“我的电脑”点右键，选“管理”，点左边“服务和应用程序”旁的加号，展开，点“服务”。<br/>或者直接在“运行”中输入“Services.msc”打开服务设置窗口。<br/>在“服务”列表中，找到“AutomaticUp&#100;ates”这一项，双击，弹出的属性窗口中，“启动类型”设置为“已禁用”，确定即可。<br/><br/><br/>方法三：<br/><br/>开始-运行-输入REGEDIT回车，在左边栏中找到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\NotifyWgaLogon项，将整个WgaLogon项删除即可。以上为经过测试的最简便方法。<br/><br/>这次的WGA与上次相比只增加了LegitCheckControl.dll，主要执行方式（通过WINLOGON加载）未变。显然微软此举可归为常规性不定期“恐吓”，此举也是对于盗版的无奈。<br/><br/>方法四：<br/><br/>@echo off<br/>sc stop wuauserv<br/>sc config wuauserv start= disabled<br/><br/>另存为bat格式的文件后运行。<br/><br/> <br/><br/>如果20号以后出现每小时黑屏一次的情况，用下面的方法：<br/><br/>@echo off<br/>sfc /purgecache<br/>reg del&#101;te &#34;HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Notify\Wgalogon&#34; /f<br/>taskkill /f /im WgaTray.exe /T<br/>del c:\Windows\system32\WgaTray.exe /f /q<br/>taskkill /f /im WgaTray.exe /T<br/>del c:\Windows\system32\WgaTray.exe /f /q<br/>taskkill /f /im WgaTray.exe /T<br/>del c:\Windows\system32\WgaTray.exe /f /q<br/>taskkill /f /im WgaTray.exe /T<br/>del c:\Windows\system32\WgaTray.exe /f /q<br/>taskkill /f /im WgaTray.exe /T<br/>del c:\WINNT\system32\WgaTray.exe /f /q<br/>taskkill /f /im WgaTray.exe /T<br/>del c:\WINNT\system32\WgaTray.exe /f /q<br/>taskkill /f /im WgaTray.exe /T<br/>del c:\WINNT\system32\WgaTray.exe /f /q<br/>echo. &amp; pause<br/>把上面的复制到记事本里保存,把记事本的后缀TXT改成BAT,然后运行.<br/>此方法供给大家参考.<br/>]]></description>
		</item>
		
			<item>
			<link>http://www.17benteng.com/article.asp?id=80</link>
			<title><![CDATA[delphi2009Crack(for Up&#100;ate1 12.0.3197.17370)破解补丁]]></title>
			<author>7180001@qq.com(admin)</author>
			<category><![CDATA[原创作品]]></category>
			<pubDate>Fri,10 Oct 2008 09:20:20 +0800</pubDate>
			<guid>http://www.17benteng.com/default.asp?id=80</guid>
		<description><![CDATA[此程序仅适用于delphi2009 Up&#100;ate1 12.0.3197.17370<br/><br/>delphi<br/>bcb<br/>.net<br/>都可以了<br/>OK 差不多搞定!<br/>有问题再说<br/><br/>下载地址:<a href="http://www.17benteng.com/soft/delphi2009Crack_Up" target="_blank" rel="external">http://www.17benteng.com/soft/delphi2009Crack_Up</a>&#100;ate1.rar<br/><br/><img src="http://www.17benteng.com/attachments/month_0810/a2008101092046.jpg" border="0" alt=""/><br/>]]></description>
		</item>
		
			<item>
			<link>http://www.17benteng.com/article.asp?id=79</link>
			<title><![CDATA[delphi2009.RMT.Crack 破解程序]]></title>
			<author>7180001@qq.com(admin)</author>
			<category><![CDATA[原创作品]]></category>
			<pubDate>Fri,10 Oct 2008 09:12:08 +0800</pubDate>
			<guid>http://www.17benteng.com/default.asp?id=79</guid>
		<description><![CDATA[本程序仅仅适用12.0.3170.16989以及之前的版本<br/>程序下载地址<br/><a href="http://www.17benteng.com/soft/delphi2009.RMT.Crack.rar" target="_blank" rel="external">http://www.17benteng.com/soft/delphi2009.RMT.Crack.rar</a><br/><br/><img src="http://www.17benteng.com/attachments/month_0810/h200810109121.jpg" border="0" alt=""/><br/>]]></description>
		</item>
		
			<item>
			<link>http://www.17benteng.com/article.asp?id=78</link>
			<title><![CDATA[IDC网站天使1.0.0.9 beta2 发布鞋,核心改变,速度更快]]></title>
			<author>7180001@qq.com(admin)</author>
			<category><![CDATA[IDC网站天使]]></category>
			<pubDate>Tue,30 Sep 2008 11:13:40 +0800</pubDate>
			<guid>http://www.17benteng.com/default.asp?id=78</guid>
		<description><![CDATA[<span style="color:Red">IDC网站天使官方交流群43453676</span><br/><br/>1.0.0.7 beta <br/><br/>2008-06-26 <br/>修正机器长时间不重启防盗链不产生密串的bug<br/>修正混合模式中一个Cookie不跨域的问题<br/><br/>2008-06-27<br/>去消URL重写中的指定目录功能<br/><br/>1.0.0.7 正式版<br/><br/>2008-06-27<br/>优化部份算法<br/>使用release编译程序<br/><br/><br/>1.0.0.8 beta<br/><br/>2008-07-05<br/>修改防盗链开启后管理后台图片不能显示的bug<br/><br/>2008-07-11<br/>重新编写防盗链算法，速度更快，运用更灵活<br/><br/>2008-07-12<br/>增加日志功能，让使用者更了解自己的网站<br/><br/>2008-07-14<br/>编写防盗链SDK接口部份<br/><br/>2008-07-16<br/>为方便管理，增加全局目录忽略设置<br/><br/>2008-07-17<br/>修改了管理程序，增加修改密码功能<br/><br/>2008-07-23<br/>取消代码过滤功能，因此功能有点耗内存<br/>修改关键词过滤功能，使之更易用<br/><br/>2008-07-25<br/>修正信息过滤器中的一个bug<br/><br/>2008-08-08<br/>修正信息过滤器中的一个压缩算法bug<br/><br/>2008-08-17<br/>修正一个兼容问题<br/><br/>1.0.0.9 重写程序核心<br/><br/>2008-09-29<br/>重写关键词过滤<br/><br/>2008-09-30<br/>修正防盗链无参数的bug(<a href="http://domain/1.jpg?wasid" target="_blank" rel="external">http://domain/1.jpg?wasid</a>)<br/><br/>下载地址:<a target="_blank" href="http://17benteng.com/soft/IDCWebAngel (1.0.0.9 beta2).rar" rel="external">http://17benteng.com/soft/IDCWebAngel (1.0.0.9 beta2).rar</a><br/>]]></description>
		</item>
		
			<item>
			<link>http://www.17benteng.com/article.asp?id=77</link>
			<title><![CDATA[IDC网站天使1.0.0.8 正式版 发布,运行更稳定]]></title>
			<author>7180001@qq.com(admin)</author>
			<category><![CDATA[IDC网站天使]]></category>
			<pubDate>Sun,17 Aug 2008 20:08:01 +0800</pubDate>
			<guid>http://www.17benteng.com/default.asp?id=77</guid>
		<description><![CDATA[八大功能集一身(IP阻塞，CC攻击，线程限制，防盗链，URL重写，信息过滤，SQL注入防护，上传攻击防护)IDC网站天使(IDCWebAngel) 1.0.0.8 正式版发布！<br/><br/>我们本着实际运用，用朴素的语言来介绍一下我们的“网站天使”！<br/><br/>什么是“网站天使”?<br/><br/>众所周知“天使”即是上帝派来守护人类的使者！他们拥有着常人没有的能力！也就是因为他们拥有常人没有的能力，他们才可以守护人类！<br/><br/>那么既然称为“网站天使”肯定有着不一般的功能了？！！！<br/><br/>首先“网站天使”就是为了弥补IIS的不足而更好地让网站站长控制自己的网站诞生，所以他的部份功能肯定是IIS所没有的，并且是很多网站站长所需要的！<br/><br/>使用在线web管理方式，可以使每一个使用“网站天使”的站长自主控制自己的“网站天使”功能，并且无需重启IIS，无须重启网站，就能使新的设置即时生效！<br/><br/>独有的多模式防盗链系统、让站长不必担忧资源被其它网站盗用，独有的在线管理自己网站的伪静态规则，并可以自动将“ISAPI_Rewrite”、“URLRewrite”等规则自动转换到<br/><br/>“网站天使”的“URL重写”规则！！！完全支持目前几大流行论坛(discuz、discuznt、phpwind等等...)的伪静态化处理！！！<br/><br/>在“网站天使”升级到“1.0.0.4”版本后，我们又增加了全新的“恶意代码过滤功能”，可过滤恶意嵌入的script,iframe,object代码，可设置允许嵌入的域名，而且代码过滤不会影响网页的正常浏览！！！<br/><br/>“网站天使”的“信息过滤”，可以过滤网页中的非法信息内容！！！<br/><br/>“网站天使”中全新的功能 “SQL注入防护”和“上传攻击防护” 结合在一起使用可以彻底地防止网站被非法入侵！<br/><br/>“网站天使”不愧为“网站天使”，九大功能彻底解决网站站长的种种困扰，使您可以更安心地把时间放到网站发展上去！！！“网站天使”网站的守护天使！！！<br/><br/>这么多强劲的功能你还在等什么呢？而且还是免费的！！！<br/><br/><br/>下面仅对“网站天使”做一份并不详细的说明<br/><br/>功能一、“网站天使”之“IP阻塞”，可按需求设置“IP阻塞目录”，“IP阻塞模式”，“IP阻塞时转向地址”，“IP禁止时显示内容”等，<br/><br/>此功能与IIS内置的“IP阻塞”并不完全相同，<br/><br/>“网站天使”的“IP阻塞”是使用“IP段(如: 192.0.0.0～192.255.255.255)”阻塞或允许IP访问网站的，<br/><br/>要注意的是这里的“IP段”前面的IP值不能小于后面的IP值，否则设置的这条规则将无效，<br/><br/>“IP阻塞目录”可指定“IP阻塞”对应的目录(如: /IISwall/Demo/)，<br/><br/>这样此目录以及目录下面的子目录中的文件都会受“IP阻塞”控制，要注意的是不能跨目录设置子目录保护并且目录前面都要带“/”符号，比如现要保护目录“/IISwall/test/”<br/><br/>设置成“/Demo/”、“/IISwall/Demo”、“IISwall/Demo/”都是不正确的，正确的设置应为“/iiswall/demo/”大小写任意，<br/><br/>IP被阻塞可自动跳转到相应的URL，若跳转URL为空，则自动向客户端发送“显示内容(可以是HTML)”中的信息！<br/><br/>注：下面的各功能中的“是否指定目录”和“目录列表”,都与“IP阻塞”中的“是否指定目录”和“目录列表”功能相同，所以就不再作介绍了！<br/><br/><br/><br/>功能二、“网站天使”之“CC攻击防护”，可按需求设置“CC攻击防护目录”、“CC攻击保护文件类型”、“刷新间隔时间”、“受攻击时锁定时间”、“CC攻击锁定时转向地址”、“CC攻击锁定时显示内容”、“CC攻击保护例外”等，<br/><br/>要说明的是“CC攻击保护例外”，当baidu或google等公司的爬虫要访问网站时，“网站天使”的“CC攻击保护”也可能会当作CC攻击，所以我们要收集这此爬虫的IP地址并加入例外列表中！<br/><br/>其它设置都在管理程序中做了详细的说明！<br/><br/><br/><br/>功能三、“网站天使”之“线程限制”，可按需求设置“线程限制模式”、“线程限制目录”、“线程限制例外”、“线程限制文件类型”、“超出线程时转向地址”、“超出线程时显示内容”、“限制线程数”等，<br/><br/>其中“线程限制模式”为两种，“单文件线程”即为对单一个文件的下载进程限制，而全局线程则指的是，对整个网站的浏览或下者进程限制，“线程限制”中其它的设置项相信各位也能看明白了！<br/><br/><br/>功能四、“网站天使”之“防盗链”，可按需求设置“防盗链模式”、“防盗链目录”、“允许链接域名列表”另分三种防盗链文件大类自行设置，分别为：“媒体文件”、“图片文件”、“其它文件”。 <br/><br/>可使用静态调用或结合sdk一起使用!<br/><br/><br/>功能五、“网站天使”之“URL重写”，URL重写既是被运用得比较广泛的伪静态技术，“网站天使”的伪静态和其它伪静态不同的是管理更加方便，直接使用web在线管理而且无需重启IIS！<br/><br/><br/><br/>功能六、“网站天使”之“信息过滤”，这个就不用多说了，“非法信息过滤”是很多人需要的！<br/><br/><br/>功能七、“网站天使”之“SQL注入防护”，相信很多站长受到过SQL注入的困扰，而且“网站天使”的“SQL注入防护”可以防止GET、POST和COOKIE的注入攻击！！！<br/><br/><br/>功能八、“网站天使”之“上传木马防护”，相信很多站长受到过上传木马防护的困扰，而且“网站天使”的“上传木马防护”可以防止很多基于HTTP的上传木马攻击！！！<br/><br/><br/><a target="_blank" href="http://17benteng.com/IDCWebAngel Professional (1.0.0.8).rar" rel="external">http://17benteng.com/IDCWebAngel Professional (1.0.0.8).rar</a><br/><br/><img src="http://www.17benteng.com/attachments/month_0808/52008817203544.gif" border="0" alt=""/><br/>]]></description>
		</item>
		
			<item>
			<link>http://www.17benteng.com/article.asp?id=76</link>
			<title><![CDATA[delphi修改wma文件标签(tag),title,copyright,artist]]></title>
			<author>7180001@qq.com(admin)</author>
			<category><![CDATA[资源共享]]></category>
			<pubDate>Wed,13 Aug 2008 16:26:23 +0800</pubDate>
			<guid>http://www.17benteng.com/default.asp?id=76</guid>
		<description><![CDATA[实现读取WMA文件的标志tag和扩展tag的信息,同时支持标志tag和扩展tag信息的写入<br/><br/>内有一个类,和一个demo程序,大家自己看源码]]></description>
		</item>
		
			<item>
			<link>http://www.17benteng.com/article.asp?id=75</link>
			<title><![CDATA[vb+api实现的http下载程序,可饶过防盗链下载文件]]></title>
			<author>7180001@qq.com(admin)</author>
			<category><![CDATA[原创作品]]></category>
			<pubDate>Wed,30 Jul 2008 17:22:22 +0800</pubDate>
			<guid>http://www.17benteng.com/default.asp?id=75</guid>
		<description><![CDATA[下面是主要实现代码,支持事件,用起来非常爽的<br/><br/>Option Explicit<br/>Private Declare Function InternetOpen Lib &#34;wininet.dll&#34; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;Alias &#34;InternetOpenA&#34; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;(ByVal lpszCallerName As String, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByVal dwAccessType As Long, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByVal lpszProxyName As String, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByVal lpszProxyBypass As String, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByVal dwFlags As Long) As Long<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>Private Declare Function InternetOpenUrl Lib &#34;wininet.dll&#34; Alias &#34;InternetOpenUrlA&#34; _<br/>&nbsp;&nbsp; (ByVal hOpen As Long, _<br/>&nbsp;&nbsp; ByVal sUrl As String, _<br/>&nbsp;&nbsp; ByVal sHeaders As String, _<br/>&nbsp;&nbsp; ByVal lLength As Long, _<br/>&nbsp;&nbsp; ByVal lFlags As Long, _<br/>&nbsp;&nbsp; ByVal lContext As Long) _<br/>&nbsp;&nbsp; As Long<br/><br/>Private Declare Function InternetConnect Lib &#34;wininet.dll&#34; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;Alias &#34;InternetConnectA&#34; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;(ByVal hInternetSession As Long, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByVal lpszServerName As String, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByVal nProxyPort As Integer, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByVal lpszUsername As String, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByVal lpszPassword As String, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByVal dwService As Long, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByVal dwFlags As Long, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByVal dwContext As Long) As Long<br/><br/>Private Declare Function InternetReadFile Lib &#34;wininet.dll&#34; _<br/>&nbsp;&nbsp; (ByVal hFile As Long, _<br/>&nbsp;&nbsp; ByRef sBuffer As Byte, _<br/>&nbsp;&nbsp; ByVal lNumBytesToRead As Long, _<br/>&nbsp;&nbsp; lNumberOfBytesRead As Long) _<br/>&nbsp;&nbsp; As Integer<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>Private Declare Function HttpQueryInfo Lib &#34;wininet.dll&#34; Alias &#34;HttpQueryInfoA&#34; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;(ByVal hHttpRequest As Long, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByVal lInfoLevel As Long, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByVal sBuffer As Any, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByRef lBufferLength As Long, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByRef lIndex As Long) As Integer<br/><br/>Private Declare Function HttpOpenRequest Lib &#34;wininet.dll&#34; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;Alias &#34;HttpOpenRequestA&#34; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;(ByVal hInternetSession As Long, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByVal lpszVerb As String, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByVal lpszObjectName As String, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByVal lpszVersion As String, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByVal lpszReferer As String, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByVal lpszAcceptTypes As Long, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByVal dwFlags As Long, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByVal dwContext As Long) As Long<br/><br/>Private Declare Function HttpSendRequest Lib &#34;wininet.dll&#34; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;Alias &#34;HttpSendRequestA&#34; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;(ByVal hHttpRequest As Long, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByVal sHeaders As String, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByVal lHeadersLength As Long, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByVal sOptional As String, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByVal lOptionalLength As Long) As Boolean<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>Private Declare Function HttpAddRequestHeaders Lib &#34;wininet.dll&#34; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;Alias &#34;HttpAddRequestHeadersA&#34; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;(ByVal hHttpRequest As Long, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByVal sHeaders As String, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByVal lHeadersLength As Long, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByVal lModifiers As Long) As Integer<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>Private Declare Function InternetSetCookie Lib &#34;wininet.dll&#34; Alias &#34;InternetSetCookieA&#34; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;(ByVal lpszUrlName As String, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByVal lpszCookieName As String, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByVal lpszCookieData As String) _<br/>&nbsp;&nbsp;&nbsp;&nbsp;As Boolean<br/><br/>Private Declare Function InternetGetCookie Lib &#34;wininet.dll&#34; Alias &#34;InternetGetCookieA&#34; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;(ByVal lpszUrlName As String, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByVal lpszCookieName As String, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;ByVal lpszCookieData As String, _<br/>&nbsp;&nbsp;&nbsp;&nbsp;lpdwSize As Long) _<br/>&nbsp;&nbsp;&nbsp;&nbsp;As Boolean<br/><br/>Private Declare Function InternetCloseHandle Lib &#34;wininet.dll&#34; _<br/>&nbsp;&nbsp;&nbsp;&nbsp;(ByVal hInternetHandle As Long) As Boolean<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>Private Declare Function Del&#101;teUrlCacheEntry Lib &#34;wininet&#34; _<br/>&nbsp;&nbsp; Alias &#34;Del&#101;teUrlCacheEntryA&#34; _<br/>&nbsp;&nbsp;(ByVal lpszUrlName As String) As Long<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>Private Declare Function Cr&#101;ateFile Lib &#34;kernel32&#34; Alias &#34;Cr&#101;ateFileA&#34; (ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, ByVal lpSecurityAttributes As Long, ByVal dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long<br/>Private Declare Function CloseHandle Lib &#34;kernel32&#34; (ByVal hObject As Long) As Long<br/>Private Declare Function WriteFile Lib &#34;kernel32&#34; (ByVal hFile As Long, lpBuffer As Any, ByVal nNumberOfBytesToWrite As Long, lpNumberOfBytesWritten As Long, ByVal lpOverlapped As Any) As Long<br/>Private Declare Function SetFilePointer Lib &#34;kernel32&#34; (ByVal hFile As Long, ByVal lDistanceToMove As Long, lpDistanceToMoveHigh As Long, ByVal dwMoveMethod As Long) As Long<br/>Private Declare Function GetFileSize Lib &#34;kernel32&#34; (ByVal hFile As Long, lpFileSizeHigh As Long) As Long<br/>Private Declare Function GetLastError Lib &#34;kernel32&#34; () As Long<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>Private Const INTERNET_OPEN_TYPE_PRECONFIG = 0<br/>Private Const INTERNET_SERVICE_HTTP = 3<br/>Private Const INTERNET_DEFAULT_HTTP_PORT = 80<br/>Private Const INTERNET_FLAG_RELOAD = &amp;H80000000<br/>Private Const HTTP_ADDREQ_FLAG_ADD = &amp;H20000000<br/>Private Const HTTP_ADDREQ_FLAG_REPLACE = &amp;H80000000<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>Private Const GWL_WNDPROC = (-4)<br/>Private Const GENERIC_WRITE = &amp;H40000000<br/>Private Const OPEN_EXISTING = 3&amp;<br/>Private Const INVALID_HANDLE_VALUE = -1&amp;<br/>Private Const Cr&#101;ate_ALWAYS = 2<br/>Private Const FILE_BEGIN = 0<br/>Private Const OPEN_ALWAYS = 4<br/><br/>Public Enum wd_Status<br/>&nbsp;&nbsp;&nbsp;&nbsp;s1 = 1&nbsp;&nbsp;&#39; 开始会话<br/>&nbsp;&nbsp;&nbsp;&nbsp;s2 = 2&nbsp;&nbsp;&#39; 连接服务器<br/>&nbsp;&nbsp;&nbsp;&nbsp;s3 = 3&nbsp;&nbsp;&#39; 发送请求<br/>&nbsp;&nbsp;&nbsp;&nbsp;s4 = 4&nbsp;&nbsp;&#39; 请求成功<br/>&nbsp;&nbsp;&nbsp;&nbsp;s5 = 5&nbsp;&nbsp;&#39; 开始接收数据<br/>&nbsp;&nbsp;&nbsp;&nbsp;s6 = 6&nbsp;&nbsp;&#39; 下载结束<br/>End Enum<br/><br/>Public Enum wd_ErrorCode<br/>&nbsp;&nbsp;&nbsp;&nbsp;e1 = 1&nbsp;&nbsp;&#39; 会话失败<br/>&nbsp;&nbsp;&nbsp;&nbsp;e2 = 2&nbsp;&nbsp;&#39; 连接服务器失败<br/>&nbsp;&nbsp;&nbsp;&nbsp;e3 = 3&nbsp;&nbsp;&#39; 发送请求失败<br/>&nbsp;&nbsp;&nbsp;&nbsp;e4 = 4&nbsp;&nbsp;&#39; 下载被中止<br/>&nbsp;&nbsp;&nbsp;&nbsp;e5 = 5&nbsp;&nbsp;&#39; 文件已经存在<br/>&nbsp;&nbsp;&nbsp;&nbsp;e6 = 6&nbsp;&nbsp;&#39; 创建目录出错<br/>&nbsp;&nbsp;&nbsp;&nbsp;e7 = 7&nbsp;&nbsp;&#39; 打开文件时出错<br/>End Enum<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>Private m_Method&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;As String<br/>Private m_URL&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; As String<br/>Private m_Referer&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; As String<br/>Private m_UserAgent&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; As String<br/>Private m_Cookie&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;As String<br/>Private m_Charset&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; As String<br/>Private m_Pakesize&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;As Long<br/>Private m_ReDown&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;As Boolean<br/>Private m_Filename&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;As String<br/>Private m_PostData&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;As String<br/>Private m_IsUpload&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;As Boolean<br/><br/>Private server&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;As String<br/>Private port&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;As Long<br/>Private script&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;As String<br/><br/>Private blnDownLoad&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; As Boolean&nbsp;&nbsp;&#39;是否下载中<br/><br/>Private hInternetOpen&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; As Long<br/>Private hInternetConnect&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;As Long<br/>Private hHttpOpenRequest&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;As Long<br/><br/>Private Buffer&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;As String<br/>Private buflen&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;As Long<br/>Private RetQueryInfo&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;As Boolean<br/><br/>Private dtTimerStart&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;As Double&nbsp;&nbsp; &#39;下载时间,用来计算速度<br/>Private TimeConsuming&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; As Double&nbsp;&nbsp; &#39;下载耗时<br/>Private dbSpeed&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; As Double&nbsp;&nbsp; &#39;下载速度<br/><br/>&#39;下载库通过该事件通知文件下载进度<br/>Event Progress(ByVal dbFileSize As Double, ByVal dbFinished As Double, ByVal dbSpeed As Double)<br/>&#39;下载库通过该事件通知下载过程结束<br/>Event DownloadEnd(ByVal bSuccess As Boolean)<br/>&#39;下载库通过该函数通知下载状态<br/>Event Status(ByVal lStatus As wd_Status)<br/>&#39;下载库通过该函数通知下载过程中发生的错误<br/>Event Error(ByVal lErrorCode As wd_ErrorCode)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&#39; 返回版本信息<br/>Public Property Get Version()<br/>&nbsp;&nbsp;&nbsp;&nbsp;Version = &#34;Pentium WininetDown 1.0.0&#34;<br/>End Property<br/><br/>&#39;类初始化<br/>Private Sub Class_Initialize()<br/>&nbsp;&nbsp;&nbsp;&nbsp;m_Method = &#34;GET&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;m_URL = &#34;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;m_Referer = &#34;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;m_UserAgent = &#34;Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;m_Cookie = &#34;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;m_Charset = &#34;gb2312&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;m_Pakesize = 1024<br/>&nbsp;&nbsp;&nbsp;&nbsp;m_ReDown = True<br/>&nbsp;&nbsp;&nbsp;&nbsp;m_Filename = &#34;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;m_PostData = &#34;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;m_IsUpload = False<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;server = &#34;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;port = 80<br/>&nbsp;&nbsp;&nbsp;&nbsp;script = &#34;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;blnDownLoad = False<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;hInternetOpen = 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;hInternetConnect = 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;hHttpOpenRequest = 0<br/>End Sub<br/><br/>&#39;类注销<br/>Private Sub Class_Terminate()<br/>&nbsp;&nbsp;&nbsp;&nbsp;blnDownLoad = False<br/>End Sub<br/><br/>&#39;Method<br/>Public Property Let Method(ByVal oValue As String)<br/>&nbsp;&nbsp;&nbsp;&nbsp;m_Method = oValue<br/>End Property<br/>Public Property Get Method() As String<br/>&nbsp;&nbsp;&nbsp;&nbsp;Method = m_Method<br/>End Property<br/><br/>&#39;URL<br/>Public Property Let URL(ByVal oValue As String)<br/>&nbsp;&nbsp;&nbsp;&nbsp;m_URL = oValue<br/>End Property<br/>Public Property Get URL() As String<br/>&nbsp;&nbsp;&nbsp;&nbsp;URL = m_URL<br/>End Property<br/><br/>&#39;Referer<br/>Public Property Let Referer(ByVal oValue As String)<br/>&nbsp;&nbsp;&nbsp;&nbsp;m_Referer = oValue<br/>End Property<br/>Public Property Get Referer() As String<br/>&nbsp;&nbsp;&nbsp;&nbsp;Referer = m_Referer<br/>End Property<br/><br/>&#39;UserAgent<br/>Public Property Let UserAgent(ByVal oValue As String)<br/>&nbsp;&nbsp;&nbsp;&nbsp;m_UserAgent = oValue<br/>End Property<br/>Public Property Get UserAgent() As String<br/>&nbsp;&nbsp;&nbsp;&nbsp;UserAgent = m_UserAgent<br/>End Property<br/><br/>&#39;Cookie<br/>Public Property Let Cookie(ByVal oValue As String)<br/>&nbsp;&nbsp;&nbsp;&nbsp;m_Cookie = oValue<br/>End Property<br/>Public Property Get Cookie() As String<br/>&nbsp;&nbsp;&nbsp;&nbsp;Cookie = m_Cookie<br/>End Property<br/><br/>&#39;设置返回字符串类型<br/>Public Property Let Charset(ByVal oValue As String)<br/>&nbsp;&nbsp;&nbsp;&nbsp;m_Charset = oValue<br/>End Property<br/>Public Property Get Charset() As String<br/>&nbsp;&nbsp;&nbsp;&nbsp;Charset = m_Charset<br/>End Property<br/><br/>&#39;Pakesize<br/>Public Property Let Pakesize(ByVal oValue As Long)<br/>&nbsp;&nbsp;&nbsp;&nbsp;m_Pakesize = oValue<br/>End Property<br/>Public Property Get Pakesize() As Long<br/>&nbsp;&nbsp;&nbsp;&nbsp;Pakesize = m_Pakesize<br/>End Property<br/><br/>&#39;ReDown<br/>Public Property Let ReDown(ByVal oValue As Boolean)<br/>&nbsp;&nbsp;&nbsp;&nbsp;m_ReDown = oValue<br/>End Property<br/>Public Property Get ReDown() As Boolean<br/>&nbsp;&nbsp;&nbsp;&nbsp;ReDown = m_ReDown<br/>End Property<br/><br/>&#39;Filename<br/>Public Property Let Filename(ByVal oValue As String)<br/>&nbsp;&nbsp;&nbsp;&nbsp;m_Filename = oValue<br/>End Property<br/>Public Property Get Filename() As String<br/>&nbsp;&nbsp;&nbsp;&nbsp;Filename = m_Filename<br/>End Property<br/><br/>&#39;PostData<br/>Public Property Let PostData(ByVal oValue As String)<br/>&nbsp;&nbsp;&nbsp;&nbsp;m_PostData = oValue<br/>End Property<br/>Public Property Get PostData() As String<br/>&nbsp;&nbsp;&nbsp;&nbsp;PostData = m_PostData<br/>End Property<br/><br/>&#39; IsUpload<br/>Public Property Let IsUpload(ByVal oValue As Boolean)<br/>&nbsp;&nbsp;&nbsp;&nbsp;m_IsUpload = oValue<br/>End Property<br/>Public Property Get IsUpload() As Boolean<br/>&nbsp;&nbsp;&nbsp;&nbsp;IsUpload = m_IsUpload<br/>End Property<br/><br/>&#39; SplitCode<br/>Public Property Let SplitCode(ByVal oValue As String)<br/>&nbsp;&nbsp;&nbsp;&nbsp;m_SplitCode = oValue<br/>End Property<br/>Public Property Get SplitCode() As String<br/>&nbsp;&nbsp;&nbsp;&nbsp;SplitCode = m_SplitCode<br/>End Property<br/><br/>&#39; 使用Adodb.Stream处理二进制数据<br/>Private Function BytesToBstr(ByVal strBody, ByVal CodeBase)<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim Ados<br/>&nbsp;&nbsp;&nbsp;&nbsp;Set Ados = Cr&#101;ateObject(&#34;Adodb.Stream&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;Ados.Type = 1<br/>&nbsp;&nbsp;&nbsp;&nbsp;Ados.Mode = 3<br/>&nbsp;&nbsp;&nbsp;&nbsp;Ados.Open<br/>&nbsp;&nbsp;&nbsp;&nbsp;Ados.Write strBody<br/>&nbsp;&nbsp;&nbsp;&nbsp;Ados.Position = 0<br/>&nbsp;&nbsp;&nbsp;&nbsp;Ados.Type = 2<br/>&nbsp;&nbsp;&nbsp;&nbsp;Ados.Charset = CodeBase<br/>&nbsp;&nbsp;&nbsp;&nbsp;BytesToBstr = Ados.ReadText<br/>&nbsp;&nbsp;&nbsp;&nbsp;Ados.Close<br/>&nbsp;&nbsp;&nbsp;&nbsp;Set Ados = Nothing<br/>End Function<br/><br/>&#39; 分析URL<br/>Private Sub URLAnalysis()<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim bStart As Long<br/>&nbsp;&nbsp;&nbsp;&nbsp;If m_URL &lt;&gt; &#34;&#34; Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;server = Replace(m_URL, &#34;<a href="http://" target="_blank" rel="external">http://</a>&#34;, &#34;&#34;, 1, -1, vbTextCompare)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bStart = InStr(server, &#34;/&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If bStart &lt;= 0 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;script = &#34;/&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;server = server<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;script = Mid(server, bStart)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;server = Mid(server, 1, bStart - 1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If InStr(server, &#34;:&#34;) &gt; 0 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim osvr As Variant<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;osvr = Split(server, &#34;:&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;server = osvr(0)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;port = CLng(osvr(1))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;server = server<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;port = 80<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>End Sub<br/><br/>&#39; 执行下载<br/>Public Function Download() As Boolean<br/>&nbsp;&nbsp;&nbsp;&nbsp;blnDownLoad = True<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim bRet As Boolean<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39; 分析URL<br/>&nbsp;&nbsp;&nbsp;&nbsp;URLAnalysis<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39; 建立一个internet会话<br/>&nbsp;&nbsp;&nbsp;&nbsp;RaiseEvent Status(s1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;hInternetOpen = InternetOpen(m_UserAgent, INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, vbNullString, 0)<br/>&nbsp;&nbsp;&nbsp;&nbsp;If hInternetOpen = 0 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Download = False<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RaiseEvent Error(e1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit Function<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39; 连接服务器<br/>&nbsp;&nbsp;&nbsp;&nbsp;RaiseEvent Status(s2)<br/>&nbsp;&nbsp;&nbsp;&nbsp;hInternetConnect = InternetConnect(hInternetOpen, server, port, vbNullString, &#34;HTTP/1.0&#34;, INTERNET_SERVICE_HTTP, 0, 0)<br/>&nbsp;&nbsp;&nbsp;&nbsp;If hInternetConnect = 0 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Download = False<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RaiseEvent Error(e2)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit Function<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39; 发送请求下载指定文件<br/>&nbsp;&nbsp;&nbsp;&nbsp;RaiseEvent Status(s3)<br/>&nbsp;&nbsp;&nbsp;&nbsp;hHttpOpenRequest = HttpOpenRequest(hInternetConnect, m_Method, script, &#34;HTTP/1.0&#34;, vbNullString, 0, INTERNET_FLAG_RELOAD, 0)<br/>&nbsp;&nbsp;&nbsp;&nbsp;If hHttpOpenRequest = 0 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Download = False<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RaiseEvent Error(e3)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit Function<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39; 请求成功<br/>&nbsp;&nbsp;&nbsp;&nbsp;Download = True<br/>&nbsp;&nbsp;&nbsp;&nbsp;RaiseEvent Status(s4)<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim sHeader As String<br/>&nbsp;&nbsp;&nbsp;&nbsp;If m_Referer &lt;&gt; &#34;&#34; Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sHeader = sHeader &amp; &#34;Referer: &#34; &amp; m_Referer &amp; vbCrLf<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;If UCase(m_Method) = &#34;POST&#34; Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sHeader = sHeader &amp; &#34;Content-Type: application/x-www-form-urlencoded&#34; &amp; vbCrLf<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39; 发送客户端信息<br/>&nbsp;&nbsp;&nbsp;&nbsp;bRet = HttpAddRequestHeaders(hHttpOpenRequest, sHeader, Len(sHeader), HTTP_ADDREQ_FLAG_REPLACE o&#114; HTTP_ADDREQ_FLAG_ADD)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39; 发送Cookie<br/>&nbsp;&nbsp;&nbsp;&nbsp;If m_Cookie &lt;&gt; &#34;&#34; Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;InternetSetCookie m_URL, vbNullString, m_Cookie<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39; 发送数据<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;If (UCase(m_Method) = &#34;POST&#34;) And (m_PostData &lt;&gt; &#34;&#34;) Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim lpszPostData As String<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim lPostDataLen As Long<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lpszPostData = m_PostData<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lPostDataLen = Len(lpszPostData)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bRet = HttpSendRequest(hHttpOpenRequest, vbNullString, 0, lpszPostData, lPostDataLen)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Buffer = Space$(1024)<br/>&nbsp;&nbsp;&nbsp;&nbsp;buflen = 1024<br/>&nbsp;&nbsp;&nbsp;&nbsp;RetQueryInfo = HttpQueryInfo(hHttpOpenRequest, 21, Buffer, buflen, 0)<br/>&nbsp;&nbsp;&nbsp;&nbsp;If RetQueryInfo Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Buffer = Mid$(Buffer, 1, buflen)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;Debug.Print Buffer<br/>&nbsp;&nbsp;&nbsp;&nbsp;Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Buffer = &#34;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>End Function<br/><br/>&#39;退出下载<br/>Public Sub bStop()<br/>&nbsp;&nbsp;&nbsp;&nbsp;blnDownLoad = False<br/>&nbsp;&nbsp;&nbsp;&nbsp;InternetCloseHandle hHttpOpenRequest<br/>&nbsp;&nbsp;&nbsp;&nbsp;InternetCloseHandle hInternetConnect<br/>&nbsp;&nbsp;&nbsp;&nbsp;InternetCloseHandle hInternetOpen<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Del&#101;teUrlCacheEntry m_URL<br/>End Sub<br/><br/>&#39;取得文件头<br/>Public Function GetHeader(Optional hdrName As String = vbNullString) As String<br/>&nbsp;&nbsp;&nbsp;&nbsp;On Error Resume Next<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim tmp As Long<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim tmp2 As String<br/>&nbsp;&nbsp;&nbsp;&nbsp;If blnDownLoad = False Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetHeader = &#34;0&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bStop<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit Function<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;If Buffer &lt;&gt; &#34;&#34; Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Sel&#101;ct Case UCase$(hdrName)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case &#34;CONTENT-LENGTH&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmp = InStr(Buffer, &#34;Content-Length&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmp2 = Mid$(Buffer, tmp + 16, Len(Buffer))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmp = InStr(tmp2, Chr$(0))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetHeader = CStr(Mid$(tmp2, 1, tmp - 1))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case &#34;CONTENT-TYPE&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmp = InStr(Buffer, &#34;Content-Type&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmp2 = Mid$(Buffer, tmp + 14, Len(Buffer))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmp = InStr(tmp2, Chr$(0))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetHeader = CStr(Mid$(tmp2, 1, tmp - 1))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case &#34;DATE&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmp = InStr(Buffer, &#34;Date&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmp2 = Mid$(Buffer, tmp + 6, Len(Buffer))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmp = InStr(tmp2, Chr$(0))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetHeader = CStr(Mid$(tmp2, 1, tmp - 1))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case &#34;LAST-MODIFIED&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmp = InStr(Buffer, &#34;Last-Modified&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmp2 = Mid$(Buffer, tmp + 15, Len(Buffer))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmp = InStr(tmp2, Chr$(0))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetHeader = CStr(Mid$(tmp2, 1, tmp - 1))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case &#34;SERVER&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmp = InStr(Buffer, &#34;Server&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmp2 = Mid$(Buffer, tmp + 8, Len(Buffer))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;tmp = InStr(tmp2, Chr$(0))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetHeader = CStr(Mid$(tmp2, 1, tmp - 1))<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case vbNullString<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetHeader = Buffer<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Case Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetHeader = &#34;0&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End Sel&#101;ct<br/>&nbsp;&nbsp;&nbsp;&nbsp;Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetHeader = &#34;0&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>End Function<br/><br/>&#39; 取得文件大小<br/>Public Function FileSize() As Long<br/>&nbsp;&nbsp;&nbsp;&nbsp;On Error Resume Next<br/>&nbsp;&nbsp;&nbsp;&nbsp;FileSize = GetHeader(&#34;Content-Length&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;If Err Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileSize = 1<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>End Function<br/><br/>&#39; 取得Cookie<br/>Public Function GetCookie(Optional ByVal CookName As String = vbNullString) As String<br/>&nbsp;&nbsp;&nbsp;&nbsp;On Error Resume Next<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim sCookieVal As String * 256<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim bRet As Boolean<br/>&nbsp;&nbsp;&nbsp;&nbsp;bRet = InternetGetCookie(m_URL, CookName, sCookieVal, 255)<br/>&nbsp;&nbsp;&nbsp;&nbsp;If bRet = False Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetCookie = &#34;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sCookieVal = Replace(sCookieVal, Chr(0), &#34;&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sCookieVal = Replace(sCookieVal, Chr(10), &#34;&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sCookieVal = Replace(sCookieVal, Chr(13), &#34;&#34;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetCookie = sCookieVal<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>End Function<br/><br/>&#39;取得文本<br/>Public Function DownLoadToText() As String<br/>&nbsp;&nbsp;&nbsp;&nbsp;On Error Resume Next<br/>&nbsp;&nbsp;&nbsp;&nbsp;If Download = False Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DownLoadToText = &#34;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit Function<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim TempBody&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;As String<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim sReadBuffer()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; As Byte<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim TatolSize&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; As Double<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim lNumberOfBytesRead&nbsp;&nbsp;As Long<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim ReadTatols&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;As Double<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim bRet&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;As Boolean<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;DownLoadToText = &#34;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;If blnDownLoad = False Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 下载被中止<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bStop<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DownLoadToText = &#34;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RaiseEvent Error(e4)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RaiseEvent DownloadEnd(False)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit Function<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39; 取得文件大小<br/>&nbsp;&nbsp;&nbsp;&nbsp;TatolSize = FileSize<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39; 时间开始<br/>&nbsp;&nbsp;&nbsp;&nbsp;dtTimerStart = Timer()<br/>&nbsp;&nbsp;&nbsp;&nbsp;Do While True<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ReDim sReadBuffer(m_Pakesize)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bRet = InternetReadFile(hHttpOpenRequest, sReadBuffer(0), m_Pakesize, lNumberOfBytesRead)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If lNumberOfBytesRead &gt; 0 And bRet = True Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ReDim Preserve sReadBuffer(0 To lNumberOfBytesRead - 1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TempBody = TempBody &amp; BytesToBstr(sReadBuffer, m_Charset)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ReadTatols = ReadTatols + lNumberOfBytesRead<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TimeConsuming = Timer() - dtTimerStart<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If TimeConsuming &gt; 0 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dbSpeed = ReadTatols / TimeConsuming<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 开始接收数据<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RaiseEvent Status(s5)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 进度信息<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RaiseEvent Progress(TatolSize, ReadTatols, dbSpeed)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit Do<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DoEvents<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If blnDownLoad = False Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 下载被中止<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bStop<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DownLoadToText = &#34;&#34;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RaiseEvent Error(e4)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RaiseEvent DownloadEnd(False)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit Do<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;Loop<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;取得文本<br/>&nbsp;&nbsp;&nbsp;&nbsp;DownLoadToText = TempBody<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;If blnDownLoad = True Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;下载完成<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bStop<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RaiseEvent Status(s6)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RaiseEvent DownloadEnd(True)<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>End Function<br/><br/>&#39;下载到文件<br/>Public Function DownloadToFile() As Boolean<br/>&nbsp;&nbsp;&nbsp;&nbsp;On Error Resume Next<br/>&nbsp;&nbsp;&nbsp;&nbsp;If Download = False Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DownloadToFile = False<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit Function<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim sReadBuffer()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; As Byte<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim TatolSize&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; As Double<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim lNumberOfBytesRead&nbsp;&nbsp;As Long<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim ReadTatols&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;As Double<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim bRet&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;As Boolean<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;Dim FileHandle&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;As Long&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;文件操作句柄<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;If blnDownLoad = False Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 下载被中止<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bStop<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DownloadToFile = False<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RaiseEvent Error(e4)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RaiseEvent DownloadEnd(False)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit Function<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39; 取得文件大小<br/>&nbsp;&nbsp;&nbsp;&nbsp;TatolSize = FileSize<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;文件存在<br/>&nbsp;&nbsp;&nbsp;&nbsp;If Len(Dir$(m_Filename)) = TatolSize Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If m_ReDown = False Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 文件已经存在<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bStop<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DownloadToFile = False<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RaiseEvent Error(e5)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RaiseEvent DownloadEnd(False)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit Function<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 删除<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Kill Filename<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 删除<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Kill Filename<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;If CheckFolder(m_Filename) = True Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FileHandle = Cr&#101;ateFile(m_Filename, GENERIC_WRITE, 0, ByVal 0&amp;, OPEN_ALWAYS, 0, ByVal 0&amp;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 创建目录出错<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bStop<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DownloadToFile = False<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RaiseEvent Error(e6)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RaiseEvent DownloadEnd(False)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit Function<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;If Err Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Err.Clear<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;关闭文件<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CloseHandle FileHandle<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 打开文件时出错<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bStop<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DownloadToFile = False<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RaiseEvent Error(e7)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RaiseEvent DownloadEnd(False)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit Function<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;设定写入位置<br/>&nbsp;&nbsp;&nbsp;&nbsp;SetFilePointer FileHandle, 0, ByVal 0&amp;, FILE_BEGIN<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39; 时间开始<br/>&nbsp;&nbsp;&nbsp;&nbsp;dtTimerStart = Timer()<br/>&nbsp;&nbsp;&nbsp;&nbsp;Do While True<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ReDim sReadBuffer(m_Pakesize)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bRet = InternetReadFile(hHttpOpenRequest, sReadBuffer(0), m_Pakesize, lNumberOfBytesRead)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If lNumberOfBytesRead &gt; 0 And bRet = True Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ReDim Preserve sReadBuffer(0 To lNumberOfBytesRead - 1)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ReadTatols = ReadTatols + lNumberOfBytesRead<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Dim Ret As Long<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;WriteFile FileHandle, sReadBuffer(0), lNumberOfBytesRead, Ret, ByVal 0&amp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;TimeConsuming = Timer() - dtTimerStart<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If TimeConsuming &gt; 0 Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;dbSpeed = ReadTatols / TimeConsuming<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 开始接收数据<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RaiseEvent Status(s5)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 进度信息<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RaiseEvent Progress(TatolSize, ReadTatols, dbSpeed)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Else<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit Do<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DoEvents<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If blnDownLoad = False Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39; 下载被中止<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bStop<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DownloadToFile = False<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RaiseEvent Error(e4)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RaiseEvent DownloadEnd(False)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Exit Do<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>&nbsp;&nbsp;&nbsp;&nbsp;Loop<br/>&nbsp;&nbsp;&nbsp;&nbsp;&#39;关闭文件<br/>&nbsp;&nbsp;&nbsp;&nbsp;CloseHandle FileHandle<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;If blnDownLoad = True Then<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&#39;下载完成<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bStop<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DownloadToFile = True<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RaiseEvent Status(s6)<br/>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;RaiseEvent DownloadEnd(True)<br/>&nbsp;&nbsp;&nbsp;&nbsp;End If<br/>End Function<br/><br/><br/>下载地址:<br/><a href="http://17benteng.com/Codes/vb/WininetDown.rar" target="_blank" rel="external">http://17benteng.com/Codes/vb/WininetDown.rar</a><br/>]]></description>
		</item>
		
			<item>
			<link>http://www.17benteng.com/article.asp?id=74</link>
			<title><![CDATA[用vb写的一个sniffer,抓包程序]]></title>
			<author>7180001@qq.com(admin)</author>
			<category><![CDATA[原创作品]]></category>
			<pubDate>Wed,30 Jul 2008 17:13:45 +0800</pubDate>
			<guid>http://www.17benteng.com/default.asp?id=74</guid>
		<description><![CDATA[很久以前的东西了,打开后点一下按扭会在程序所在文件夹下生成一个1.txt文件,用来存放抓包的数据<br/><br/><br/>下载地址<br/><a target="_blank" href="http://17benteng.com/Codes/vb/Benteng_Sniffer2.rar" rel="external">http://17benteng.com/Codes/vb/Benteng_Sniffer2.rar</a>]]></description>
		</item>
		
</channel>
</rss>
