Q : 当一个系统安装了超星阅读器,那么,在IE里边输入book:// 就会启动IE
如果装了realplayer 就算用http://的方式,访问一个ram的文件,也会被realplayer
执行。。
请问上述两种情况IE是怎样实现的?是纪录在注册表么?我们如何做才能有这个效果呢
A : Internet Explorer就想Windows系统(Explorer)一样是通过在系统注册表中查询文件类型关联的关联程序(即打开方式)来判断当前文件应该由哪个程序启动。
一般情况下您可以通过手工或编程修改Windows注册表编辑器来达到改变文件打开方式的目的,详细信息请您参考下面这篇文章:
如何在Windows操作系统中改变文件打开方式
http://www.cx66.com/cxgzs/program/vb/608.htm
某个程序应该由哪个程序启动的相关信息在HKEY_CLASSES_ROOT主键下与该文件扩展名相对应的子键下,比如该子键下的OpenWithList子键和OpenWithProgIds子键的信息。
>请问能否具体到那个注册表信息能意味这,这个结尾的文件由IE访问的时候启动第3方
工具直接打开?(例如:.ram的文件)
IE中文件的打开方式也是有Exploere中的打开方式所决定的,但是不同的Windows账号可以分别设置其各自的文件打开方式,这些设置信息都记录在注册表
HKCU/Software/Microsoft/Windows/CurrentVersion/Explorer/FileExts/
>还有。。。某个协议会由第3方工具访问(例如:book:// 会启动超星打开这个网址)
如果您要使某个应用程序能够处理一个特定的URL协议,也需要在注册表的HKEY_CLASSES_ROOT主键下创建相应的子键和其下的值,对book:// 而言,就要创建一个“book”的子键,并将其下的默认值设为“URL:book Protocol”,再添加其它一些键设定访问URL协议资源的应用程序,完整的示例请您参考微软知识库的文章:
Registering an Application to a URL Protocol
http://msdn.microsoft.com/library/default.asp?url=/workshop/networking/pluggable/overview/appendix_a.asp?frame=true
相对应的文件扩展名的子键下,比如Application, OpenWithList, OpenWithProgids的值或子键下,再由该值映射回我们上回所讨论的HKEY_CLASSES_ROOT主键的相应设置。
*************************************************************************************************
Q : showhelp()弹出的chm文件是否可以获得网页变量?
例如:我定义
<script>
Var a="XX电业局"
showhelp("help.chm")
</script>
我希望这个help.chm里边可以调用a的值。。谢谢!
A : chm文件是一组已经过编译的HTML文件,您可以通过指定window.showHelp的vContextID参数来打开该chm文件中的某特定页面,但无法在运行时定制其中某页面的行为(例如要获得父窗口的网页变量):
window.showHelp(sURL [, vContextID])
showHelp Method
http://msdn.microsoft.com/library/default.asp?url=/workshop/author/dhtml/reference/methods/showhelp.asp
>... vContextID 和 chm 中的页面怎么样关联?或者说,我怎么样给chm文件中html文件分配一个vContextID?
>
CHM文件中各个HTML页面的ContextID是在编译该CHM时确定的,即为CHM项目文件添加某HTML页面时就可为其指定一个ContextID,它相当于该HTML页面在这个CHM项目中的编号。
这样当您用showhelp()并指定ContextID的话,弹出的chm文件就能直接打开与该ContextID相对应的HTML页面,而不是CHM文件中的Homepage页面了。
>能否把设置ContextID的页面给切个图看一下...
不同的CHM文件制作工具的界面是不同的,不知到您使用的是哪个工具。例如当您使用微软的Help Workshop制作CHM文件往里添加HTML文件是,需要您指定该HTML文件在CHM工程里的标题和标题ID,该标题ID(Topic ID)就是我们所她讨论的ContextID。
>如果指定的ContextID不存在回怎么样呢?
这就会直接导航到“This page cannot be found”页面。
**************************************************************************************************
博客围绕Windows系统中文件打开方式及CHM文件使用问题展开。介绍了IE通过注册表查询文件类型关联程序,可手工或编程修改注册表改变文件打开方式;还探讨了CHM文件能否获取网页变量、vContextID与页面关联等问题,如CHM页面ContextID在编译时确定。

被折叠的 条评论
为什么被折叠?



