
时间:2015-06-28 00:00 来源:IT猫扑网|http://www.itmop.com/ 作者:网管联盟 我要评论(0)
Windows中的文件双击的时候,如果有程序关联了该文件的扩展名,那么就会用关联的程序打开该文件。那么它内部是怎么实现的呢?今天我给大家简单讲一下。
一切都在注册表
所有注册了的扩展名都在Windows的注册表中,它的键值位于:
HKEY_CLASSES_ROOT
如下图,可以看到有很多的注册表键值:

我们看一下.txt的键值:

比较奇怪的是这里没有发现有哪个键值写了用什么程序来打开它。
奥秘就在于.txt的默认值,请看一下.txt的默认值:

.txt 的默认值是:
txtfile
那这个txtfile是什么东西呢?其实txtfile也是一个位于HKEY_CLASSES_ROOT下的键值,它的路径是:
HKEY_CLASSES_ROOTtxtfile
那就看下txtfile是什么东西:

看上图,大家注意到了没有,这里有一个shellopencommand的子条目,再打开这个条目看看:

看到了没,notepad.exe就是&记事本&,后面的%1 一般用来传递被打开的文件路径。
我找到这里,就猜想,这个就是默认的打开程序。
实践验证
上面是猜想,还需要验证一下。
我新建了一个.test的扩展名,把该类型注册为testfile。

再新建一个testfile条目:

测试一下:

总结

首先,Windows在注册表中查找对应的扩展名有无注册,有注册就读取该扩展名对应的文件类型,找到文件类型再从中读取关联的程序,从而调用该程序来打开。
关键词标签:Windows,文件关联
相关阅读 解决应用程序正常初始化(0xc0000135)失败 hosts文件位置以及如何修改hosts文件 [声音故障]XP没有声音,丢失Windows Audio服务(AudioSrv)[警告:2003不一定适用 一个空文件夹删不掉的解决办法 hosts文件在哪 hosts文件位置 hosts文件是什么? 正确删除系统中文件名乱码的文件
热门文章
解决应用程序正常初始化(0xc0000135)失败
hosts文件位置以及如何修改hosts文件
[声音故障]XP没有声音,丢失Windows Audio服务(AudioSrv)[警告:2003不一定适用
一个空文件夹删不掉的解决办法
关闭Windows 7提供的硬盘自动节能功能
Windows 7系统维护功能 系统备份和还原
人气排行 [声音故障]XP没有声音,丢失Windows Audio服务(AudioSrv)[警告:2003不一定适用 解决Windows 7黑屏的有效方法 windows2003中关于软路由设置方法的具体介绍 Windows不能在本地计算机启动OracleDBConsoleorcl 一个空文件夹删不掉的解决办法 微软Windows错误代码大全(2) 用Windows命令行实现自动SSH代理 Windows 7加XP的局域网搭建与文件共享 百度云盘下载速度慢破解教程_非会员限速破解 Windows提示错误应用程序update.exe Windows 事件ID及解释大全 Win11怎么在开始菜单添加快捷方式-开始菜单添加快捷方式操作方法
查看所有0条评论>>