更改Windows 7系統下檔案的開啟檔案的方法

來源:互聯網
上載者:User

  系統是windows7,這位朋友因為案頭沒有OFFICE表徵圖,又急著要用WORD,就把一個案頭表徵圖右擊,選擇開啟檔案中選擇了word,而且沒有把"始終使用這種程式開啟同類型檔案"前的勾去掉。這一改之後,結果所有的捷徑全變成了word文檔了。可以再改成別的,比如再改為記事本方式開啟,但就是沒有辦法恢複原狀。

  這是一個檔案關聯的問題。這樣的問題在xp下根本就不可能發生,看來這個具體問題是Windows 7下的新問題。網上大致搜了一下,發現出現這樣問題的決不只是這位朋友,看來有解決的必要。

  為瞭解決這個問題,我們需要先談一下檔案關聯的一些基本的知識,這樣才能使朋友們做到知其然而知其所以然。

  檔案關聯,主要的是把檔案類型與開放式命令關聯起來。而windows是通過檔案的副檔名來識別檔案類型的,這就首先需要把副檔名與檔案類型關聯起來。

   第一、assoc命令

  要修改副檔名與檔案類型的關聯,我們需要用到一個命令:assoc

  點開始,搜尋,輸入cmd,開啟cmd,在cmd中輸入:assoc /?斷行符號。我們可以得到關於這個命令的協助。

  assoc命令的作用有兩個,一是顯示副檔名與檔案類型的關聯,一是改寫副檔名與檔案類型的關聯。讓我們以捷徑的關聯為例來講述這個問題。捷徑的副檔名是。lnk,在windows下,這個副檔名一般是不會顯現出來的,如果出現了,必是它的檔案關聯出問題了。我們在cmd中輸入:assoc .lnk斷行符號,我們可以得到的命令結果是:.lnk=lnkfile

  這個命令結果顯示了:副檔名。lnk與檔案類型lnkfile是相關聯的。凡是副檔名為。lnk的檔案,都屬於lnkfile這個檔案類型。

  現在讓我們輸入命令:

  assoc .lnk=lnk

  斷行符號lnk這個副檔名與檔案類型的關聯就被改寫了。然後我們再輸入命令:

  assoc .lnk

  斷行符號。我們得到的命令結果將是:

  .lnk=lnk

  這個結果顯示了,副檔名。lnk已經是與檔案類型lnk相關聯,而不再是與lnkfile相關聯。這個時候您去案頭上去看一下吧,您案頭上所有的捷徑的尾碼名。lnk全部顯示出來了,所有的捷徑都不再可用。雙擊時會提示:windows無法開啟此檔案。

  現在再讓我們輸入:

  assoc .lnk=lnkfile

  斷行符號。我們將會發現,一切又恢複了原狀。

  總之,如果是捷徑的副檔名與檔案類型之間的關聯出現了問題,我們只需要輸入:

  assoc .lnk=lnkfile

  斷行符號後即可以解決問題。

  這樣,如果我們知道一種副檔名所屬的正確的檔案類型,當這種副檔名與檔案類型之間的關聯出現問題的時候,我們只需要輸入:

  assoc .ext=filetype

  斷行符號即可。

  這個。ext代表的是副檔名,比如。lnk,這個filetype代表的是檔案類型,比如lnkfile.如果我們不知道一種副檔名所關聯的檔案類型是什麼,我們只需要在cmd中輸入:assoc .ext斷行符號。我們就能得到它所關聯的檔案類型是什麼。每一個註冊了的副檔名都會在註冊表中存在著一個對應的登錄機碼:HKEY_CLASSES_ROOT.ext

  這裡的。ext代表的是副檔名,比如捷徑對應的項就是:

  HKEY_CLASSES_ROOT.lnk

  這個項有一個預設的值,這個預設的值的資料,就是這個捷徑所關聯的檔案類型。因而assoc命令,主要的就是修改這個項的預設值的資料。但需要注意的是,assoc命令所修改的內容,並不僅僅是這個項的預設值的資料,它還會要修改其它的一些方面。所以我們直接在註冊表中改這個值的資料,並不能完全代替 assoc命令。

   第二、 fytpe命令

  我們現在知道了如何把副檔名與檔案類型關聯起來了,進一步地需要知道的是如何把檔案類型與開放式命令關聯起來。比如。txt副檔名所關聯的檔案類型是 txtfile,而txtfile正常的情形下,總是用notepad.exe(記事本)來開啟的,這個notepad.exe就是開啟txtfile檔案類型的開放式命令。如何來修改這種檔案類型與開放式命令之間的關聯呢?這需要用到另外的一個重要的命令:ftype

  讓我們在cmd中輸入:

  ftype /?

  斷行符號。我們可以得到這個命令的協助。

  ftype命令有兩個作用,一是顯示檔案類型與開放式命令之間的關聯,一是改寫檔案類型與開放式命令之間的關聯。

  如果我們想知道一種檔案類型與什麼樣的開放式命令相關聯,我們只需要在cmd中輸入:

  ftype fileType

  斷行符號。我們就能夠得到我們想要得到的結果。這個fileType代表的是指定的檔案類型,比如lnkfile

  讓我們輸入:ftype lnkfile

  斷行符號。正常情形下我們得到的命令結果是:沒有找到檔案類型"lnkfile"或者與其相關的開放式命令這個結果表明了,正常的情形下,lnkfile是沒有與任何開放式命令相關聯的。

  讓我們輸入:ftype lnkfile=notepad.exe

  斷行符號。讓我們再輸入:

  ftype lnkfile

  斷行符號,我們將得到的命令結果是:

  lnkfile=notepad.exe

  這個結果表明了:檔案類型lnkfile就與開放式命令notepad.exe關聯上了。

  這種情形下,仍然並不會影響捷徑的開啟。那麼,如何來清除這個關聯,並且不與其它的開放式命令關聯呢?我們只要輸入:

  ftype lnkfile=

  斷行符號即可。在xp下,這個命令無效,但是,我們可以在xp下輸入:

  ftype lnkfile=

  斷行符號。這個命令與前一個命令在外表上幾乎看不出分別,分別就在於,前一個命令在=後面沒有空格,而後一個命令在=後有一個空格。

  讓我們輸入:

  ftype txtfile

  斷行符號。正常情形下,我們可以得到的命令結果是:

  txtfile="%SystemRoot%system32NOTEPAD.EXE" %1

  這個結果表明了:檔案類型txtfile與開放式命令txtfile="%SystemRoot%system32NOTEPAD.EXE" %1相關聯。

  如果一種檔案類型與開放式命令之間的關聯出現了問題,而我們知道正確的開放式命令是什麼,這時我們只需要在cmd中輸入如下命令並斷行符號即可修複:

  ftype fileType=openCommandString

  這裡fileType代表的是指定的檔案類型,比如txtfile,這裡openCommandString代表的是開放式命令,比如notepad.exe

  如果我們的txtfile與開放式命令之間的關聯出了問題,我們只需要在cmd中輸入:

  ftype txtfile="%SystemRoot%system32NOTEPAD.EXE" %1

  斷行符號。這樣,我們也就修複了txtfile檔案類型與它的開放式命令之間的關聯。

  所謂開放式命令,其實就是對這種檔案類型的開啟檔案。

  每一種註冊了的檔案類型,在註冊表中都會存在著它的一個對應的登錄機碼,

  這個登錄機碼就是:

  HKEY_CLASSES_ROOTfiletype

  這個filetype代表的是檔案類型,比如batfile檔案類型所對應的登錄機碼就是:

  HKEY_CLASSES_ROOTbatfile

  ftype命令所修改的登錄機碼主要就是---HKEY_CLASSES_ROOTfiletypeshell

  opencommand---這個項的預設值的資料。

  但需要注意的是,ftype命令所修改的並不僅僅是這個預設值的資料。因而直接在註冊表中修改這個資料,並不能代替ftype命令的修改。

  當然,ftype命令所修改的全部的東西都可以在註冊表中找到,但是,我們那樣一一地去找,遠不如用ftype命令簡單修改來得爽。

   第三、右鍵開啟檔案

  前面我們談到了副檔名與檔案類型的關聯,檔案類型與開放式命令的關聯(也就是檔案的開啟檔案),看起來好象我們關於檔案關聯的問題就談完了,實則不然,還有另外的一個重要的方面我們沒有談到。這就是我們右擊一個檔案,選擇開啟檔案(並不是所有檔案右鍵都有開啟檔案這個選項的),然後我們選擇一個程式,並把"始終使用這種程式開啟同類型檔案"前的勾選上,點確認。比如本文開頭的那位朋友,把所有捷徑都選擇以word程式開啟一樣。這樣之後,這個檔案類型也就與這個開放式命令關聯起來了。

  ftype命令是修改檔案類型與開放式命令的關聯的,而右鍵開啟檔案也可以修改檔案類型與開放式命令的關聯,這二者的關係是什麼呢?我們發現,ftype命令和右鍵開啟檔案,這二者所修改的登錄機碼是不同的。Ftype命令所修改的登錄機碼是:

  HKEY_CLASSES_ROOTfiletype

  這個filetype代表的是檔案類型,比如HKEY_CLASSES_ROOTlnkfile

  而右鍵開啟檔案所修改的主要登錄機碼是:

  HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersion

  ExplorerFileExts.ext

  這個。ext代表的是副檔名,比如:

  HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersion

  ExplorerFileExts.lnk

  按照我的理解,ftype命令所修改的內容屬於系統設定,而右鍵開啟檔案所修改的內容則屬於使用者佈建,這二者所設定的實際對象是一樣的,當二者不一致的時候,使用者佈建優先於系統設定。

  三個登錄機碼

  總之,檔案關聯所涉及到的登錄機碼主要是三個:

  HKEY_CLASSES_ROOT.ext

  HKEY_CLASSES_ROOTfiletype

  HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersion

  ExplorerFileExts.ext

  問題解決

  現在要回到我們在開頭所說到的問題了。

  我教那位朋友首先輸入:

  assoc .lnk

  返回的命令結果是:

  .lnk=lnkfile

  這表明,副檔名。lnk與檔案類型lnkfile之間的關聯沒有問題。

  我再要他輸入:

  ftype lnkfile

  返回的命令結果是:

  沒有找到檔案類型"lnkfile"或者與其相關的開放式命令而這個結果是正常的,這表明,系統設定中的lnkfile與開放式命令之間的關聯也沒有問題。

  那麼,問題只能出在使用者佈建中的lnkfile與開放式命令之間的關聯出現了問題。一般的情形下,右鍵開啟檔案的設定優先於ftype命令對檔案關聯的設定,這在xp和Windows 7下都是一樣的,但對於副檔名為。lnk的捷徑,二者卻具有不同。在Windows 7下,即便是對於。lnk捷徑,也是右鍵開啟檔案的設定優先於ftype命令的設定。找到了問題所在,我們就可以知道,對於這種捷徑的檔案關聯錯誤,我們用assoc和ftype命令都是無法解決的。解決的辦法就是:

  在註冊表中右鍵刪除下面這個登錄機碼:

  HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersion

  ExplorerFileExts.lnkUserChoice

  這個登錄機碼下的值和資料(具體就是名為progid的值和它的資料),是對應右鍵開啟檔案所設定的預設開啟程式的。

  在刪除後,重啟電腦,或者重啟explorer,問題完美得到解決。

  除了這種解決辦法,其它的解決辦法暫時沒有找到。

  順便說一下,在XP下,UserChoice這個登錄機碼是沒有的。

  由於一些檔案右鍵沒有開啟檔案選項,在xp下,我們可以在我的電腦裡面點工具----查看----檔案夾選項---檔案類型,這裡我們可以進行同樣的設定,而在Windows 7下,我們可以在----控制台---程式---預設程式----始終使用指定的程式開啟此文類型---裡面進行設定,xp下設定的可選項要多得多,而 Windows 7下則的設定則極為簡明。限於篇幅,具體的設定就不講了。

  結語:通過以上的步驟,就可以更改Windows 7系統下檔案的開啟檔案的問題!

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.