相關(guān)資訊
本類常用軟件
-
福建農(nóng)村信用社手機銀行客戶端下載下載量:584204
-
Windows優(yōu)化大師下載量:416896
-
90美女秀(視頻聊天軟件)下載量:366961
-
廣西農(nóng)村信用社手機銀行客戶端下載下載量:365699
-
快播手機版下載量:325855
這篇文章分享的是關(guān)于WIN7文件關(guān)聯(lián)(文件與程序“聯(lián)姻”)的解決方法,希望能幫助到大家。
遇到一位朋友緊急求助:系統(tǒng)是windows7,這位朋友因為桌面沒有OFFICE圖標(biāo),又急著要用WORD,就把一個桌面圖標(biāo)右擊,選擇打開方式中選擇了Word,而且沒有把“始終使用這種程序打開同類型文件”前的勾去掉。這一改之后,結(jié)果所有的快捷方式全變成了word文檔了?梢栽俑某蓜e的,比如再改為記事本方式打開,但就是沒有辦法恢復(fù)原狀。
這是一個文件關(guān)聯(lián)的問題。這樣的問題在xp下根本就不可能發(fā)生,看來這個具體問題是Win7下的新問題。網(wǎng)上大致搜了一下,發(fā)現(xiàn)出現(xiàn)這樣問題的決不只是這位朋友,看來有解決的必要。
為了解決這個問題,我們需要先談一下文件關(guān)聯(lián)的一些基本的知識,這樣才能使朋友們做到知其然而知其所以然。
文件關(guān)聯(lián),主要的是把文件類型與開放式命令關(guān)聯(lián)起來。而windows是通過文件的擴展名來識別文件類型的,這就首先需要把擴展名與文件類型關(guān)聯(lián)起來。
assoc命令
要修改擴展名與文件類型的關(guān)聯(lián),我們需要用到一個命令:assoc
點開始,搜索,輸入cmd,打開cmd,在cmd中輸入:assoc /? 回車。我們可以得到關(guān)于這個命令的幫助。
assoc命令的作用有兩個,一是顯示擴展名與文件類型的關(guān)聯(lián),一是改寫擴展名與文件類型的關(guān)聯(lián)。
讓我們以快捷方式的關(guān)聯(lián)為例來講述這個問題。
快捷方式的擴展名是.lnk,在windows下,這個擴展名一般是不會顯現(xiàn)出來的,如果出現(xiàn)了,必是它的文件關(guān)聯(lián)出問題了。
我們在cmd中輸入:assoc .lnk ,回車后我們可以得到的命令結(jié)果是: .lnk=lnkfile 。這個命令結(jié)果顯示了:擴展名.lnk與文件類型lnkfile是相關(guān)聯(lián)的。凡是擴展名為.lnk的文件,都屬于lnkfile這個文件類型。
現(xiàn)在讓我們輸入命令: assoc .lnk=lnk ,按下回車鍵,lnk這個擴展名與文件類型的關(guān)聯(lián)就被改寫了。然后我們再輸入命令: assoc .lnk ,按下回車鍵,我們得到的命令結(jié)果將是: .lnk=lnk ,這個結(jié)果顯示了,擴展名.lnk已經(jīng)是與文件類型lnk相關(guān)聯(lián),而不再是與lnkfile相關(guān)聯(lián)。
這個時候你去桌面上去看一下吧,你桌面上所有的快捷方式的后綴名.lnk全部顯示出來了,所有的快捷方式都不再可用。雙擊時會提示:windows無法打開此文件。
現(xiàn)在再讓我們輸入: assoc .lnk=lnkfile ,按下回車鍵,我們將會發(fā)現(xiàn),一切又恢復(fù)了原狀。
總之,如果是快捷方式的擴展名與文件類型之間的關(guān)聯(lián)出現(xiàn)了問題,我們只需要輸入: assoc .lnk=lnkfile,回車后即可以解決問題。
這樣,如果我們知道一種擴展名所屬的正確的文件類型,當(dāng)這種擴展名與文件類型之間的關(guān)聯(lián)出現(xiàn)問題的時候,我們只需要輸入: assoc .ext=filetype ,按下回車鍵即可。 這個.ext代表的是文件擴展名,比如.lnk,這個filetype代表的是文件類型,比如lnkfile。如果我們不知道一種擴展名所關(guān)聯(lián)的文件類型是什么,我們只需要在cmd中輸入:assoc .ext回車。我們就能得到它所關(guān)聯(lián)的文件類型是什么。
每一個注冊了的擴展名都會在注冊表中存在著一個對應(yīng)的注冊表項: HKEY_CLASSES_ROOT\.ext ,
這里的.ext代表的是擴展名,比如快捷方式對應(yīng)的項就是: HKEY_CLASSES_ROOT\.lnk ,這個項有一個默認(rèn)的值,這個默認(rèn)的值的數(shù)據(jù),就是這個快捷方式所關(guān)聯(lián)的文件類型。因而assoc命令,主要的就是修改這個項的默認(rèn)值的數(shù)據(jù)。但需要注意的是,assoc命令所修改的內(nèi)容,并不僅僅是這個項的默認(rèn)值的數(shù)據(jù),它還會要修改其它的一些方面。所以我們直接在注冊表中改這個值的數(shù)據(jù),并不能完全代替assoc命令。
fytpe命令
我們現(xiàn)在知道了如何把擴展名與文件類型關(guān)聯(lián)起來了,進一步地需要知道的是如何把文件類型與開放式命令關(guān)聯(lián)起來。比如.txt擴展名所關(guān)聯(lián)的文件類型是txtfile,而txtfile正常的情形下,總是用notepad.exe(記事本)來打開的,這個notepad.exe就是打開txtfile文件類型的開放式命令。
如何來修改這種文件類型與開放式命令之間的關(guān)聯(lián)呢?這需要用到另外的一個重要的命令:ftype
讓我們在cmd中輸入: ftype /? 回車。我們可以得到這個命令的幫助!
ftype命令有兩個作用,一是顯示文件類型與開放式命令之間的關(guān)聯(lián),一是改寫文件類型與開放式命令之間的關(guān)聯(lián)!
如果我們想知道一種文件類型與什么樣的開放式命令相關(guān)聯(lián),我們只需要在cmd中輸入: ftype fileType ,按下回車鍵,我們就能夠得到我們想要得到的結(jié)果。
這個fileType代表的是指定的文件類型,比如lnkfile,我們輸入:ftype lnkfile ,按下回車鍵,正常情形下我們得到的命令結(jié)果是: 沒有找到文件類型“lnkfile”或者與其相關(guān)的開放式命令,這個結(jié)果表明正常的情形下,lnkfile是沒有與任何開放式命令相關(guān)聯(lián)的。
讓我們輸入:ftype lnkfile=notepad.exe ,按下回車鍵,再輸入:ftype lnkfile ,按下回車鍵,我們將得到的命令結(jié)果是: lnkfile=notepad.exe 這個結(jié)果表明了:文件類型lnkfile就與開放式命令notepad.exe關(guān)聯(lián)上了。
這種情形下,仍然并不會影響快捷方式的打開。 那么,如何來清除這個關(guān)聯(lián),并且不與其它的開放式命令關(guān)聯(lián)呢?我們只要輸入: ftype lnkfile= ,然后回車即可。
在xp下,這個命令無效,但是,我們可以在xp下輸入:ftype lnkfile= ,按下回車鍵,這個命令與前一個命令在外表上幾乎看不出區(qū)別,區(qū)別就在于,前一個命令在=后面沒有空格,而后一個命令在=后有一個空格。
讓我們輸入:ftype txtfile ,按下回車鍵,正常情形下,我們可以得到的命令結(jié)果是: txtfile="%SystemRoot%\system32\NOTEPAD.EXE" %1 ,這個結(jié)果表明了:文件類型txtfile與開放式命令txtfile="%SystemRoot%\system32\NOTEPAD.EXE" %1相關(guān)聯(lián)。
如果一種文件類型與開放式命令之間的關(guān)聯(lián)出現(xiàn)了問題,而我們知道正確的開放式命令是什么,這時我們只需要在cmd中輸入如下命令并回車即可修復(fù): ftype fileType=openCommandString ,這里fileType代表的是指定的文件類型,比如txtfile,這里openCommandString代表的是開放式命令,比如notepad.exe
如果我們的txtfile與開放式命令之間的關(guān)聯(lián)出了問題,我們只需要在cmd中輸入: ftype txtfile="%SystemRoot%\system32\NOTEPAD.EXE" %1 ,按下回車鍵,這樣我們也就修復(fù)了txtfile文件類型與它的開放式命令之間的關(guān)聯(lián)。
所謂開放式命令,其實就是對這種文件類型的打開方式。每一種注冊了的文件類型,在注冊表中都會存在著它的一個對應(yīng)的注冊表項,這個注冊表項就是: HKEY_CLASSES_ROOT\filetype ,這個filetype代表的是文件類型,比如batfile文件類型所對應(yīng)的注冊表項就是: HKEY_CLASSES_ROOT\batfile ,ftype命令所修改的注冊表項主要就是---HKEY_CLASSES_ROOT\filetype\shell\open\command---這個項的默認(rèn)值的數(shù)據(jù)。
但需要注意的是,ftype命令所修改的并不僅僅是這個默認(rèn)值的數(shù)據(jù)。因而直接在注冊表中修改這個數(shù)據(jù),并不能代替ftype命令的修改。
當(dāng)然,ftype命令所修改的全部的東西都可以在注冊表中找到,但是,我們那樣一一地去找,遠(yuǎn)不如用ftype命令簡單修改來得爽。
右鍵打開方式
前面我們談到了擴展名與文件類型的關(guān)聯(lián),文件類型與開放式命令的關(guān)聯(lián)(也就是文件的打開方式),看起來好象我們關(guān)于文件關(guān)聯(lián)的問題就談完了,實則不然,還有另外的一個重要的方面我們沒有談到。這就是我們右擊一個文件,選擇打開方式(并不是所有文件右鍵都有打開方式這個選項的),然后我們選擇一個程序,并把“始終使用這種程序打開同類型文件”前的勾選上,點確認(rèn)。比如本文開頭的那位朋友,把所有快捷方式都選擇以word程序打開一樣。這樣之后,這個文件類型也就與這個開放式命令關(guān)聯(lián)起來了。
ftype命令是修改文件類型與開放式命令的關(guān)聯(lián)的,而右鍵打開方式也可以修改文件類型與開放式命令的關(guān)聯(lián),這二者的關(guān)系是什么呢?
我們發(fā)現(xiàn),ftype命令和右鍵打開方式,這二者所修改的注冊表項是不同的。Ftype命令所修改的注冊表項是: HKEY_CLASSES_ROOT\filetype ,這個filetype代表的是文件類型,比如HKEY_CLASSES_ROOT\lnkfile ,而右鍵打開方式所修改的主要注冊表項是: HKEY_CURRENT_USER\Software\microsoft\Windows\CurrentVersion\Explorer\FileExts\.ext ,這個.ext代表的是文件擴展名,比如: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.lnk ,按照我的理解,ftype命令所修改的內(nèi)容屬于系統(tǒng)設(shè)置,而右鍵打開方式所修改的內(nèi)容則屬于用戶設(shè)置,這二者所設(shè)置的實際對象是一樣的,當(dāng)二者不一致的時候,用戶設(shè)置優(yōu)先于系統(tǒng)設(shè)置。
三個注冊表項
總之,文件關(guān)聯(lián)所涉及到的注冊表項主要是三個:
HKEY_CLASSES_ROOT\.ext
HKEY_CLASSES_ROOT\filetype
HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.ext
問題解決
現(xiàn)在要回到我們在開頭所說到的問題了。我教那位朋友首先輸入:assoc .lnk ,返回的命令結(jié)果是: .lnk=lnkfile 中,這表明,擴展名.lnk與文件類型lnkfile之間的關(guān)聯(lián)沒有問題。 我再要他輸入:ftype lnkfile ,返回的命令結(jié)果是:沒有找到文件類型“lnkfile”或者與其相關(guān)的開放式命令,而這個結(jié)果是正常的,這表明,系統(tǒng)設(shè)置中的lnkfile與開放式命令之間的關(guān)聯(lián)也沒有問題。
那么,問題只能出在用戶設(shè)置中的lnkfile與開放式命令之間的關(guān)聯(lián)出現(xiàn)了問題。 一般的情形下,右鍵打開方式的設(shè)置優(yōu)先于ftype命令對文件關(guān)聯(lián)的設(shè)置,這在xp和win7下都是一樣的,但對于擴展名為.lnk的快捷方式,二者卻具有不同。在win7下,即便是對于.lnk快捷方式,也是右鍵打開方式的設(shè)置優(yōu)先于ftype命令的設(shè)置。
找到了問題所在,我們就可以知道,對于這種快捷方式的文件關(guān)聯(lián)錯誤,我們用assoc和ftype命令都是無法解決的。解決的辦法就是:
在注冊表中右鍵刪除下面這個注冊表項: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.lnk\UserChoice 這個注冊表項下的值和數(shù)據(jù)(具體就是名為progid的值和它的數(shù)據(jù)),是對應(yīng)右鍵打開方式所設(shè)置的默認(rèn)打開程序的。
在刪除后,重啟電腦,或者重啟explorer,問題完美得到解決。 除了這種解決辦法,其它的解決辦法暫時沒有找到。
順便說一下,在XP下,UserChoice這個注冊表項是沒有的。
由于一些文件右鍵沒有打開方式選項,在xp下,我們可以在我的電腦里面點工具----查看----文件夾選項---文件類型,這里我們可以進行同樣的設(shè)置,而在Win7下,我們可以在----控制面板---程序---默認(rèn)程序----始終使用指定的程序打開此文類型---里面進行設(shè)置,xp下設(shè)置的可選項要多得多,而Win7下則的設(shè)置則極為簡明。