博客上很多的同学都来反映说是程序一打开就自动停止工作,经过分析发现程序出错很有可能发生在自动更新的过程中。

于是趁着返回学校前的十几分钟,决定抓虫试试。

根据网友们的反映,前几天尚未出现故障,说明软件本身可能出错的几率较小。于是研究目标一下就转到了新浪上……=-=

先来说一下迅雷漫画下载工具II自动更新的工作原理吧

(本程序是我初学VB.NET写的第一个程序……从第一版缝缝补补到现在,连我都不忍心看那些惨不忍睹的代码了……

如果贴出了一些不成熟源码,大家将就看吧=-=千万不要打击我)

1.我把新版本上传到某一外链空间中

2.把新版本的相关信息按照相应格式发到某一篇博文中:

这个博文的地址:http://blog.sina.com.cn/s/blog_58c506600100c37y.html

自动更新数据的格式:

#Region "版本更新格式说明"'版本更新格式'以十个 # 开始,十个 ~ 结束'每部分间以"|"作为分隔符'【0】版本(5位数,转换为Int64):81226'【1】此版本名称:迅雷漫画下载工具II'【2】更新信息:啊啊啊啊$啊啊啊啊啊$啊啊啊啊啊啊$啊啊啊啊     以美元符号($)作为换行符'【3】下载地址:http://www.xxxxxxxxxxxxxx.com/xxxxxx/xxxxx/xx/xxxxxxx/xxx.exe'【4】重要性:0-普通 1-推荐更新(修复了已知Bug) 2-强烈推荐(添加了软件功能) 3-修补了安全漏洞'【5】发布日期:2009年1月1日
#End Region

3.程序在启动时会取得上面文章的源代码,然后对源代码进行分析,并且与当前的版本进行对比后进行相应的提示(是否有新版本)

4.具体的取得方式为:

取得源代码后程序查询字符串”##########”和”~~~~~~~~~~”在文章中的位置,根据定义,这两个字符串分别表示了数据段的起始和结束位置

'开始标记
Private StartSign As String = "##########"
'结束标记
Private EndSign As String = "~~~~~~~~~~"
If html1.IndexOf(StartSign) >= 0 ThenDim codeStart As Integer = html1.IndexOf(StartSign) + StartSign.LengthDim codeEnd As Integer = html1.IndexOf(EndSign)Dim code As String = html1.Substring(codeStart, codeEnd - codeStart)
 
然后使用Split()函数将各个信息分开
'保存原始数据的数组
Private updateInfo() As String
updateInfo = code.Split("|"c)
'版本号
newVersion = CLng(updateInfo(0))
'名称
newVersionName = updateInfo(1)
'版本描述
newVersionDescribe = "当前最新版本:" & updateInfo(0) & ControlChars.CrLf & _"发布日期:" & updateInfo(5) & vbCrLf & vbCrLf & updateInfo(2)
newVersionDescribe = newVersionDescribe.Replace("$", ControlChars.CrLf)
'下载地址
newVersionDownloadURL = updateInfo(3)
'重要性
newVersionImportant = CInt(updateInfo(4))
If newVersion > currentVersion ThenReturn 1
ElseReturn 0
End If
最后显示出来
 

本次的更新错误出现在了文章源代码分析上

背景:新浪大概在4月10号左右更新了博文的源代码构成方式,在源代码中新增了<meta>内容以更好地利用搜索引擎提取文章信息

相关HTML源码如下:

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" />
<meta name="description" content="Kaedei,坏天气,——————————迅雷漫画下载工具Ⅱ更新数据用————————————————————" />
<meta name="keywords" content="Kaedei,坏天气,杂谈" />

可以看出,导致问题的正是Meta中的name属性,因为name=”description”多此一举地将文章的部分内容显示在了HTML的<head>之后(也就是比较靠前的位置),导致第一个”##########”提早出现。

所以程序截取的字符串就是一大堆无用的字符了,然后在类型转换的时候导致了异常产生(此段代码也因为疏忽没有加上Try……Catch),而又因为程序默认开启了自动更新,所以在程序刚一开始的时候就会出现错误,导致停止工作。

我已经修复了这个错误,现在可以正常使用了

以上~

感谢以下网友的反馈:

凉粉仔

jack2002003

林风对月

vita

还有几位匿名的朋友

再次表示感谢!

转载于:https://www.cnblogs.com/kaedei/archive/2009/04/12/TComicX-error090412.html

迅雷漫画下载工具II 故障日志09.04.12相关推荐

  1. 迅雷漫画下载 v1.0(绿色版) 附源码

    发现迅雷网站漫画很全,写了一个用于下载迅雷网站上漫画的工具. http://anime.xunlei.com/Book/sort 这个网址的全部1100多部漫画全部可以打包下载到本地. 只求完成功能, ...

  2. 仿迅雷实现下载工具,支持断点续传和多线程下载以及简单界面展示

    这篇博客介绍一下在公司实习时选做的一个项目,虽然实习期间没有全部完成,但觉得这个项目做好的话挺有意思的,就在之后几天赶着完善了这个项目. 博客最后给出代码地址 这个项目是仿照迅雷,实现一个下载工具. ...

  3. 懒人的漫画下载工具[基本能用版]

    从http://mh.jumpcn.com/上下载漫画. 这个网站的防盗链不够强大,添加一个伪造的http referer header就可以了. 但是图片的URL不是特别规范(有好多种),为了省事就 ...

  4. java 禁用迅雷_JSP禁用迅雷等下载工具下载文件,强制使用右键另存功能下载文件...

    * 实现文件另存功能 * * @param text * 文件内容 * @param fileName * 文件名称 * @return */ protected String renderFile( ...

  5. JSP禁用迅雷等下载工具下载文件,强制使用右键另存功能下载文件

    * 实现文件另存功能 * * @param text * 文件内容 * @param fileName * 文件名称 * @return */ protected String renderFile( ...

  6. Ubuntu 环境中多线程下载工具Axel的安装与使用

    今天用Ubuntu系统下载一个文件的时候,对方服务器的速度非常的慢,并且速度会越来越慢.一般下载到10%的时候,速度就会几乎为零. 于是我尝试找找类似迅雷的下载工具软件,发现迅雷并没有提供Linux版 ...

  7. Ubuntu 18.04/20.04 多线程下载工具AXEL和AIRA2

    今天用Ubuntu系统下载一个文件的时候,对方服务器的速度非常的慢,并且速度会越来越慢.一般下载到10%的时候,速度就会几乎为零. Ubuntu 18.04/20.04苦于没有IDM 迅雷这样的下载软 ...

  8. 推荐一款Linux平台下的BT下载工具

    一直以来,没有完全脱离windows,其中一个很主要的原因是Linux下缺少一款可以媲美于迅雷的下载工具,当然Linux下的下载工具也不少,而且功能也已经很是强大,况且脱胎于Unix的Linux始终于 ...

  9. 一款非常好用的下载工具-Free Download Manager-可代替迅雷使用的下载工具

    迅雷作为老牌的下载工具,应该都使用过,然而当前的迅雷在越来越大的基础上,新增了很多非下载的功能,为了追求纯粹的下载体验的用户来说,未免有些冗余.而Free Download Manager作为免费的下 ...

最新文章

  1. SAP RETAIL MM42进入商品的销售视图系统提示: No basic purchase price relevant to pricing found with schema RM0000
  2. 如何使用 Mmcv.exe 工具来管理群集消息队列资源[转]
  3. bootstrap 点击加号 表格_bootstrap中的输入组按钮,点击加号加1,减1子
  4. 基于DDD的.NET开发框架 - ABP工作单元(Unit of Work)
  5. 服务器重新部署踩坑记
  6. 文献阅读课12-Fine-Grained Temporal Relation Extraction(19ACL,时间关系,时间持续时间,数据集,语义框架,常识)
  7. linux 开启关闭tomcat服务器端口,linux系统安装、启动和关闭tomcat
  8. [leetcode] 1335. 工作计划的最低难度
  9. Android Multimedia框架总结(九)Stagefright框架之数据处理及到OMXCodec过程
  10. oracle数据库使用
  11. PC管理端及评委手机打分端的浏览器兼容问题
  12. 银联证书下载及导出流程
  13. Citavi 6使用教程
  14. 生猪价格matlab,2447教务处.doc
  15. win10系统CUDA10.0安装教程(for tensorflow2.0)
  16. 报错vs2019 初始值设定项值太多
  17. m4a转如何快速转换为wav格式呢
  18. cs231n-(4)反向传播
  19. canvas长微博生成功能实践
  20. 多媒体在计算机的应用,计算机多媒体在教学中的应用

热门文章

  1. 利用油猴插件 Tampermonkey 编写脚本以屏蔽网页指定元素——以屏蔽百度搜索右边的百度热榜为例
  2. 汇编指令msr_(转)ARM汇编学习笔记——MRS和MSR指令
  3. STATA学习笔记:egen函数
  4. Linux环境下安装TASSEL_5_standalone
  5. 探索MATLAB深度学习
  6. escape,encodeURI,encodeURIComponent有什么区别?
  7. 推荐五款免费且优质的自学网站,你值得拥有
  8. 机器学习【西瓜书/南瓜书】--- 第1章绪论(学习笔记+公式推导)
  9. 【原创】ppp拨号上网总结
  10. 2小时入门神经网络与深度学习