- 論壇徽章:
- 0
|
本帖最后由 struggle 于 2011-1-17 16:50 編輯 \n\n什么是文件關聯(lián)呢?通俗地說,就是選擇不同類型的文件時,在其右鍵菜單上顯示的各功能項。每個功能項即對應一個關聯(lián)。選擇了某一功能(操作),系統(tǒng)就去執(zhí)行相應的處理程序。至于對什么文件的什么操作對應什么樣的處理程序,那都記錄在系統(tǒng)注冊表中。因此,要真正弄清文件關聯(lián),必須深入研究注冊表。這個問題解決了,我們就可以利用注冊表隨心所欲地為文件建立,修改,刪除關聯(lián)。 \r\n既然關聯(lián)信息都寫在注冊表中,那么它在注冊表中又是怎樣構成的呢?我們不妨打開注冊表,觀察根鍵HKEY_CLASSES_ROOT之下的各個主鍵。(這樣或許更易說明這一點)你是不是看到了很多前面有一個點(.),后面好象是文件擴展名的主鍵,如圖二所示 \r\n \r\nDefaultIcon主鍵,它的功能是定義該類文件的默認圖標。 \r\nShell主鍵,它的功能是本文討論的中心——文件關聯(lián)之“命根”所在。文件的各種關聯(lián)都寄生在此“根”之下,正是它定義了該類文件與多個程序相關聯(lián)。它的默認值也很有用,你是否還記得雙擊文件可以將文件打開(對于已注冊的文件),這種打開就是利用了系統(tǒng)注冊表所設定的默認打開方式,即由shell主鍵的默認鍵值來控制。它之下的每個主鍵,都可稱作是“關聯(lián)主鍵”(如圖四)!瓣P聯(lián)主鍵”的鍵名是任意的(建議用英文),它的默認鍵值也是我們感興趣的。因為這一默認鍵值會直接顯示在右鍵菜單中,并且每個“關聯(lián)主鍵”之下都有一個command主鍵,這個主鍵定義的就是“該關聯(lián)對應的執(zhí)行程序”。如圖五所示,到此文件關聯(lián)已昭然若揭。 \r\n \r\n 下面我們就以.reg文件(注冊表的腳本文件)為例來說明其關聯(lián)過程。 \r\n 首先.reg文件在HKEY_CLASSES_ROOT根鍵之下有一個“擴展名主鍵”。.reg其默認值為regfile,說明reg類型文件關聯(lián)的主鍵是regfile。再在該根鍵之下找“標識主鍵”regfile,regfile主鍵之下有一個DfaultIcon主鍵,作用是定義reg文件的默認圖標。其默認鍵就是圖標的全路徑文件名。如: C:windows egedit.exe,1(表示的是regedit.exe中的第2個圖標)。regfile主鍵之下還有一個上文稱之為“命根”的主鍵shell,reg文件的關聯(lián)就記錄在shell之中。下面我們就為regt建立一個關聯(lián)。步驟為:在shell主鍵之下,新建主鍵xxf(名任意),置其默認值為:“徐喜峰的文本編輯器”,再在xxf主鍵之下新建主鍵command,置其默認值為C:WindowsNotepad.exe %1,該默認值的意義為:用記事本來打開當前reg文件。若沒有%1參數(shù),則只運行記事本程序,而不打開當前文件。 \r\n |
|