時(shí)間:2015-06-28 00:00:00 來源:IT貓撲網(wǎng) 作者:網(wǎng)管聯(lián)盟 我要評論(0)
Windows中的文件雙擊的時(shí)候,如果有程序關(guān)聯(lián)了該文件的擴(kuò)展名,那么就會(huì)用關(guān)聯(lián)的程序打開該文件。那么它內(nèi)部是怎么實(shí)現(xiàn)的呢?今天我給大家簡單講一下。
一切都在注冊表
所有注冊了的擴(kuò)展名都在Windows的注冊表中,它的鍵值位于:
HKEY_CLASSES_ROOT
如下圖,可以看到有很多的注冊表鍵值:
我們看一下.txt的鍵值:
比較奇怪的是這里沒有發(fā)現(xiàn)有哪個(gè)鍵值寫了用什么程序來打開它。
奧秘就在于.txt的默認(rèn)值,請看一下.txt的默認(rèn)值:
.txt 的默認(rèn)值是:
txtfile
那這個(gè)txtfile是什么東西呢?其實(shí)txtfile也是一個(gè)位于HKEY_CLASSES_ROOT下的鍵值,它的路徑是:
HKEY_CLASSES_ROOT\txtfile
那就看下txtfile是什么東西:
看上圖,大家注意到了沒有,這里有一個(gè)shell\open\command的子條目,再打開這個(gè)條目看看:
看到了沒,notepad.exe就是"記事本",后面的%1 一般用來傳遞被打開的文件路徑。
我找到這里,就猜想,這個(gè)就是默認(rèn)的打開程序。
實(shí)踐驗(yàn)證
上面是猜想,還需要驗(yàn)證一下。
我新建了一個(gè).test的擴(kuò)展名,把該類型注冊為testfile。
再新建一個(gè)testfile條目:
測試一下:
總結(jié)
首先,Windows在注冊表中查找對應(yīng)的擴(kuò)展名有無注冊,有注冊就讀取該擴(kuò)展名對應(yīng)的文件類型,找到文件類型再從中讀取關(guān)聯(lián)的程序,從而調(diào)用該程序來打開。
關(guān)鍵詞標(biāo)簽:Windows,文件關(guān)聯(lián)
相關(guān)閱讀
熱門文章 如何修改服務(wù)器3389端口 Win11系統(tǒng)怎么設(shè)置中文-Win11更改成中文的方法教程 Win11怎么設(shè)置同步時(shí)間-Win11手動(dòng)同步時(shí)間操作方法 Win11怎么在開始菜單添加快捷方式-開始菜單添加快捷方式操作方法
人氣排行 [聲音故障]XP沒有聲音,丟失Windows Audio服務(wù)(AudioSrv)[警告:2003不一定適用 解決Windows 7黑屏的有效方法 windows2003中關(guān)于軟路由設(shè)置方法的具體介紹 Windows不能在本地計(jì)算機(jī)啟動(dòng)OracleDBConsoleorcl 一個(gè)空文件夾刪不掉的解決辦法 微軟Windows錯(cuò)誤代碼大全(2) 用Windows命令行實(shí)現(xiàn)自動(dòng)SSH代理 Windows 7加XP的局域網(wǎng)搭建與文件共享