请问一个WORD文件是如何被WORD程序打开的,请各位从系统的角度分析一下
小弟对这个问题一直不解还请各位仁兄帮一下哈,100分哈 问题点数:100、回复次数:8Top
1 楼li1418(我很菜,我还笨)回复于 2005-08-01 02:50:54 得分 10
应该是系统文件关联吧
在注册表里作的喽,你双击一个文件,系统去找它的打开方式,找不到的时候就弹出个框框:Windows不能打开此文件......Top
2 楼killer1984(人在天涯)回复于 2005-08-01 07:29:18 得分 30
word文档有两种打开方式。
一个就是普通的通过word文件打开,比如双击文件时,windows资源管理器收到这个消息,调用窗口回调函数,这个函数查找注册表发现该类型打开工具(就是那个exe文件)于是以你双击的文件名为参数调用之。word程序打开后首先创建Application对象,然后执行COM加载项的处理和Normal.dot模板中定义的宏的处理,接着在Application对象中加入Documents(Document)对象,并调用其open方法打开文档(打开方法当然是调用文件处理api了),打开后根据word格式(多文档)分别读入不同节区并创建相应对象进行存储,同时触发open事件,执行处理代码。。。差不多打开就这样完成了。。。
另一种方式就是OLE方式了。对连接或嵌入的word对象进行双击,即可激活word程序对其进行处理,这个过程就是COM自动化的功劳了,具体过程稍稍有点复杂,你感兴趣可以找几本COM的书看看。激活之后的处理过程跟上面那个差不多,只不过少了一些步骤而已。Top
3 楼afx_swallow(足球和啤酒)回复于 2005-08-01 08:47:41 得分 10
我只知道双击图标,由系统找到相应的可执行程序,然后打开
楼上说的ole方式不是很懂Top
4 楼xsp919(末末)回复于 2005-08-01 09:11:05 得分 10
学习中~~~~~~~~~up`Top
5 楼Kenmark(fenix)回复于 2005-08-01 09:32:07 得分 10
ole是微软提供的一种应用程序接口只要提供接口的程序都可以在OLE中使用Top
6 楼sunlu_eric(天使预备役)回复于 2005-08-01 09:51:34 得分 10
这都是操作系统做的工作呀,例如:你可以便一个程序扩展名如果为".txt"就读它,如果为".dat"
就追加它,不是一样的么?
只不过那些工作是操作系统做的!Top
7 楼javaman8(javaman)回复于 2005-08-01 10:52:27 得分 20
当你在双击WORD文件时,在注册表里由于进行了关联winword %1
其中的%1就表示你要找开的文件名,
你也可以在开始菜单里的运行里打 winword d:\sss.doc
也是一样可以打开的.
当然另一种就是你在软件中打开了.
第一种只是在程序中多了一些处理过程而已Top
8 楼coolfiry()回复于 2005-08-01 18:21:02 得分 0
killer1984(人在天涯) 谢谢你的分析了Top




