我写的一个<font color="red">全面超越NetCaptor浏览器</font> (300分)

  • 主题发起人 主题发起人 unreal
  • 开始时间 开始时间
:)
我是Fantasia的作者 夏昕
很久不来大富翁了,听到左轻候说起大家正讨论这个问题就来看看
MultiBrowser 是一个不错的浏览器
简洁,恰到好处
Fantasia目前已经发展得比较臃肿,因而开始丧失小巧,快速的开发定位
大家可以去我的主页看看新版本Fantasia 2001 和我的一些牢骚
http://bluehawk.yeah.net
至于Fantasia , MultiBrowser和Netcaptor,看上去好像功能相近
其实我不得不承认,Fantasia ,MultiBrowser和Netcaptor相比都有一段距离
其差距并不在于功能的多样性,而在于底层的控制。
我和Netcaptor作者以及国内不少浏览器作者: FastBrowser, MyIE,NetWorker
都保持着良好的接触交流,
跟Netcaptor 作者交流,谈的都是如何从IE底层入手,如何发现一些未知的
功能,如对AutoComplete,以及Script的控制
而跟国内的作者交流,往往停留在表层,比如我要实现一个什么功能什么的。
实际上,功能的添加在技术上并不复杂,相信到这里的人都能完成,关键的在于
对浏览器的底层理解
我也正在尝试从底层写一个浏览器,目前已经有了一个比较完善的Html解析器
以及相应的一些底层函数
呵呵,离一个真正浏览器还是有非常遥远的路要走
其实,分页式浏览器做到这个份上,已经没有什么大的价值
我也正在考虑公开源代码,如果大家认为它有价值的话

 
高手就是不一样,不过我正在down啊,好慢!!1
 
>>unreal
收回第一个问题!(太晚了看了,你的程序也太激动了,脑子就不太好使了)
第二个问题:你同时打开IE,打开MultiBrowser和Netcaptor,到我说的那个网址看一下,
就知道了。不用多说,很多其浏览器都是这样的!!就是没有IE的那种效果好!
 
  To unreal:
  好家伙!竟然要“全面超过NetCaptor”?(说明:是"NetCaptor",不是"NetCater",
你大概是敲错键盘了。)我现在还没有do
wnload 看看,等一下就做!我可是用 NetCaptor
很久了哦,如果你的东东好用,看来我大概要改用你的了,因为 NetCaptor 确实也有一些不
足之处的。
  To Nuke:
  你的那个浏览器,我用过一些,可惜,效果不大爽,感觉比 NetCaptor 确实有些差距,
(对不起,我是“实话实说”……),因为我第一次安装使用,它竟然告诉我出错(现在已
经不记得当时的提示了。),所以,虽然我一直把它保留在我的计算机上,但因为比较忙,
就一直很少再用了……
  至于你说的“……而跟国内的作者交流,往往停留在表层,比如我要实现一个什么功能
什么的。……”,有什么办法呢?谁叫我们的母语是汉语(我绝不是说汉语不好!)?很多
国外的程序员,尤其是母语是英语的程序员,他们学习程序设计有他们的先天优势——语言
优势。我们当然不能跟他们比了——我们读一篇帮助,都要花很多时间的……你没有看到在
大富翁这里经常有人问关于 Delphi 的汉化、Delphi 的帮助问题?如果我们的英语水平很高,
能够象一些英语母语的国家的程序编写者一样的英语水平,我想,我们的编程水平绝不至于
和他们相差这么远!所以,唉……
  我说的这些,其实是我对你说那句话的一点儿感想而已,没什么其他的含义……
 
下载去。
 
>>NUKE
你的浏览器中一些小功能挺好的,尤其是那个关闭时记住当前页面,下次还可以再打开。
另:我用Fantasia时经常遇到程序没有响应,不知你遇到过没?
我的配置是VIA Apollo pro + Celeron 466 + Window2000 pro + ie5.0 + Delphi5
 
源码,我也想要:)可我凭什么要呢?
unreal,我们拿什么奉献给你呢?如果你愿意公布源码的话。
 
>>  好家伙!竟然要“全面超过NetCaptor”?(
偶尔吹吹牛无伤大雅,呵呵
to nuke
我不明白你所谓的底层是什么意思?
TWebBrowser只是人家提供的一个AcitiveX控件,何来底层?
>>AutoComplete,以及Script的控制
这些还不能算是底层,也很容易实现。
>>我也正在尝试从底层写一个浏览器,目前已经有了一个比较完善的Html解析器
>>以及相应的一些底层函数
就我所知MS的IE有近千人在写,就是NetScape也有近百人在写。
看看MSDN里IHTML开头的东西有多少,再看看MSHTML_TLB.pas,这还仅仅是MS公开的,
未公开的东西只能比这还多。
其复杂程度岂是一个人能完成的?!
网上所谓Html语法解析器,简易的浏览器的确是有一些,可这些离一个真正的浏览器
又岂止是遥远...
>>实际上,功能的添加在技术上并不复杂,相信到这里的人都能完成,关键的在于
>>对浏览器的底层理解
简单的罗列代码我相信大多数人都会,而写出一个代码条理清晰,
结构合理,易于扩充,易于维护的程序也不是很轻松。
我也觉得技术上的东西并不重要,下功夫找都能找到资料,完成自然也不是很难。
(对浏览器这种东西资料显得更为重要一些,MSDN里Ihtml开头的东西快被我翻烂了,嘿嘿)
我想很多人可能见过这样的程序员,写了几年程序了却毫无进步,写出来的东西还
是那个德行-- 一团乱麻一样的东西,回头你让他自己看都看不懂。
另:我不相信写一个较大的程序用个Button,Form什么的连名字都不起,而直接用Delphi
默认的Name的人能写出什么好程序来。

以上大家提的所有意见都已解决,菜单、双击关闭、打开上一次关闭的页面等等...
十分感谢大家的建议意见。
现在在细节上改动比较多--主要是实用性易用性的。当然也增加了一些很实用的功能。
自然也修正了一些Bug。(我不喜欢华而不实的东西)
另外还趁着现在对整个程序思路还清晰,整理了一下代码,添加了一些注释。
程序发布么可能要等一段时间,因为最近兴趣不是很多,热情也少了一点,最近也比较忙...
至于源码么,只能说也许、大概、差不多、有可能、不一定、不好说......1万多行的代码谁有心情看呢......
我写这个东西目的不是要写共享软件,完全是由于NetCaptor一个极其不体贴用户的地方,
我怀疑NetCaptor的作者是不用滚轮鼠标的......
NetCaptor早期版本点击一个链接之后当前页就失去焦点,我只是用了一个月就留下个后遗症-----
就是点击之后就满页的找空白地方点一下鼠标---为了让我的滚轮起作用,嘿嘿
被逼无奈,只好自己动手丰衣足食,那时候我也不知道已经有了几个国产的共享软件了,
结果现在放眼看大陆至少已经有10个类似的浏览器了,嘿嘿....
我也没想到我会把这东西写到1万多行并且拿出来献丑........
想当初写了7,8百行刚搭了个架子(可能架子都不算的东西)也挺高兴的,兴奋了好一阵。
其实1千多行的我写了4个,其中还有一个MDI的,不过都扔了,现在这个是以第4个为基础的,我最满意的一个。
 
公布源码的时候别忘了通知我一声:-)
先谢过了!
 
用的时间长了会非法操作
 
To Unreal
呵呵,不知道你以为的AutoComplete是什么,如果你指的是地址栏的AutoComplete
那当然是很简单,一个函数即可
我说的意思是网页内部的编辑框的自动完成(用户名,密码)。这绝对不是简简单
单就可以实现。
至于Script控制,简单的来说MultiBrowser可以控制脚本错误吗?不行,至多是有了
错误框就Send 一个 Wm_close而已,如何从根本上杜绝这个错误呢?如何在IE对其
进行之前就截获它?不知道你考虑了没有,这都是可以实现的。
我说的底层,当然并非只是对一些IE现成接口的调用,对于接口的调用是没什么复杂,
MSDN上都有现成的例子。
简单举个例子,比如IE的前进,后退HistoryList,不知道你试过没有,是的,IE5.5提
供了一个ITraveLog接口,但是在delphi中暂时无法获取这个接口信息,必须采用一些
特殊的方法,而怎样处理可以得到这个数据呢?
我这里有两种方法,一种比较简单,通过对于Documentcomplete的判断来获取,当然这
里面技术细节也比较多,主要是复杂的判断,谈不上什么底层不底层的问题,但的确是
可以做到的,我已经试验过,另外一种方法是通过Straw技术访问IE的内部保护数据。
前面一种方法是我自己琢磨出来的,也是NetCaptor新版本中采用的算法。而第二种方法
是NeoPlanet的作者告诉我的,其中有比较大的技巧,由于牵涉到人家的一些独创的东西
,我就不便多说了。
可见,即使是对于一个简单的Acitvex,也是有许多的内含可以琢磨,何况IE还是Windows
系统的一个重要组成部分。
就连MSDN里也并非包括了所有的资料。
至于自己写底层浏览器,你所说的我当然明白,我一个写的话无异于单人匹马造航母,
航母我肯定造不出来,模型说不定可以搞出一个。
用Twebbrowser开发的同时,我也在同时研究Mozilla,我有一个在新加坡创新公司的朋
友,他的工作就是负责开发一些专门用途的浏览器。我们讨论了不少问题,其实开发
一个简单的(不支持Script,不支持Java等)浏览器,并不是那么不可想象的事情,不然
Opear的作者也不可能最初是单枪匹马半年就写出个浏览器来。
这个问题以前我跟雷军也讨论过,在中国开发自主浏览器的可行性,的确,这在商业上
是不大可行,不过自己有兴趣做做的话,没有什么大不了的阿。
你说IE有上千个人,Netscape有几百个人在开发,也太离谱了点
我在美国微软的朋友告诉我IE开发组目前成员稳定在 40人左右。
Netscape开发组目前是23人
当然如果算上后勤,文档之类的人可能要不少,也不至于这么多。
其实复杂的技术并不需要太多的人,往往关键的主程序员也就那么一两个。
至于你说的那些什么button不起名字之类的,呵呵我就经常懒得起名字(Form一定会起的)
为了一个关闭,确认按钮还一定要起个名字的话。那顶多只是所谓程序员的态度是否严谨,
以及程序风格上的事情了。
呵呵,怎么说着说着有点象针锋相对了,真的,没这个意思。
还希望和你交个朋友,不知道你有没有OICQ号码或者ICQ号。
 
感觉不错!还可以!
 
据我所知,Opera是两个家伙弄出来的。
 
猛料猛料。
加进收藏夹!
 
>>呵呵,不知道你以为的AutoComplete是什么,如果你指的是地址栏的AutoComplete
>>那当然是很简单,一个函数即可
我以为的AutoComplete是自动添用户名、密码等。
说实话我原来也是想歪了,以致于放弃,可后来其实就是前2天发现其实很简单。
>>至于Script控制,简单的来说MultiBrowser可以控制脚本错误吗?不行,至多是有了
>>错误框就Send 一个 Wm_close而已,如何从根本上杜绝这个错误呢?如何在IE对其
>>进行之前就截获它?不知道你考虑了没有,这都是可以实现的。
我想你应该看到我的MultiBrowser有个“禁止脚本错误信息”,
当出现脚本错误的时候你看到闪动了么?----这不可能,因为我根本就不是
发个WM_CLOSE。我做事一般情况下很少对付,不能用正规方法解决的问题
我就不做。:)
ITravelLogStg我还真不知道,不过这个接口只有IE5.5才有,我对IE5.5没好感,而且大多数
人用的还都是IE5.0,我也不想实现这个东西。其实IE5.0下有替代的办法,就是IOmHistory,
不过我觉得那个前进后退的列表实在是鸡肋,我自己从来不用,加这个还要写好多代码,
我也懒的写了。
>>你说IE有上千个人,Netscape有几百个人在开发,也太离谱了点
>>我在美国微软的朋友告诉我IE开发组目前成员稳定在 40人左右。
>>Netscape开发组目前是23人
我说的是“近”不是“上”,也没有几百的“几”。这个差别很大呀!
这也不是我说的,是以前在哪里看到的。我猜也是算上后勤,销售什么的了
你说40多人也不大可能呀,IE现在已经成为MS的操作系统很核心的东西,绝对不可能就用40几人写,
如果真是,只怕他们都要吐血了。
事实上前几天的新闻还说MS的XBox有1千多人的开发队伍。我想可能也算上后勤,销售什么的了。
>>其实复杂的技术并不需要太多的人,往往关键的主程序员也就那么一两个。
如果他们手下无人,所有代码都要自己弄,只怕吐血都吐不出来了。软件开发团队合作非常重要,
搞个人英雄主意的时代已经过去了。
>>那顶多只是所谓程序员的态度是否严谨,以及程序风格上的事情了。
我真的觉得这个非常非常的重要。
>>呵呵,怎么说着说着有点象针锋相对了,真的,没这个意思。
我最高兴的事是能听到不同意见,呵呵
>>还希望和你交个朋友,不知道你有没有OICQ号码或者ICQ号。
OICQ,ICQ我从来都不用,也没有号码,我比较喜欢用EMail。:)
不过我每次上网的时候一定会去 263 irc 的 #大富翁 richbbs
有机会聊聊 :)
 
我给你写了Email,望查收..
:)
我希望能作一个类似IEDelphi的中文站点
不知道你有没有合作兴趣呢....
希望能够合作..
:)
 
to nuke
我没收到?
 
都是老大呀。。。我好佩服。。。。
大家都要写浏览器?
 

Similar threads

D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
后退
顶部