磊博士吧 关注:32贴子:1,095
  • 1回复贴,共1

编写浏览器外壳的几个关键点

只看楼主收藏回复

看最近在各个吧里晒浏览器的很多,所以把一些浏览器必须的功能,又很难百度到的,跟大家分享一下~一般只说方法,具体代码自己写吧
1、最头疼的 默认浏览器设置,当初百度搜遍了,问问也没人回答,最后自己检索其他浏览器修改注册表的位置才有所发现。(扯疼了一个周才弄明白,但是其他浏览器会修改很多项不解)
总结出方法: 在XP下修改注册表:(Cell为自己设计的名字~)
[HKEY_CLASSES_ROOT\http\shell]
@="Cell.Http"
[HKEY_CLASSES_ROOT\https\shell]
@="Cell.Http"
[HKEY_CLASSES_ROOT\http\shell\Cell.Http\command]
@="\"C:\\Documents and Settings\\Administrator\\桌面\\cell.exe\" %1"
[HKEY_CLASSES_ROOT\https\shell\Cell.Http\command]
@="\"C:\\Documents and Settings\\Administrator\\桌面\\cell.exe\" %1"
在Win7下修改注册表:
[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAss ociations\ftp\UserChoice]
"Progid"="Cell.Http"
[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAss ociations\http\UserChoice]
"Progid"="Cell.Http"
[HKEY_CURRENT_USER\Software\Microsoft\Windows\Shell\Associations\UrlAss ociations\https\UserChoice]
"Progid"="Cell.Http"
[HKEY_CLASSES_ROOT\Cell.Http\shell\open\command]
@="\"C:\\Documents and Settings\\Administrator\\桌面\\cell.exe\" %1" 这些位置都是自己摸索出来的可以实现默认设置,但要判断用户是什么系统,很麻烦。如果有更内行的请分享出来偶~
获取用户要打开的连接只需在窗体Load时: web1.Navigate command() 即可
2、实现标签(这个就比较繁琐了)
在这里说最开始得吧,如果 浏览器 已经打开,则在已打开的浏览器中打开用户要到达的连接
首先,在程序启动时判断 浏览器进程是否已经存在,若存在就发送消息(即为程序运行时获得的command())到已经打开的浏览器,已打开的浏览器中的 文本框 接受消息后在changed事件中打开网页,然后清空,以便再次打开新网页
这是以前写的,功能齐全,但当时不知道用API可以显示PNG图片,所以界面做的不怎么样,全是Gif图片~
转自其他贴吧,略有修改。


IP属地:陕西来自Android客户端1楼2014-08-09 22:34回复
    另外说一下,个人感觉那个命令行打开网页(就是那个Command()的)是有问题的,因为程序运行时,提供的命令行参数可能不止一个,也许会两三个,如果不加判断直接打开是会出现导航错误的,就凭这一点足以证明原作者的逻辑思维的欠缺。
    正确做法是:判断提供的命令行中网页链接的数量,然后只打开第一个链接或者用循环多标签地分别打开网页。


    IP属地:陕西来自Android客户端2楼2014-08-10 14:05
    回复