先用一個(gè)圖片來(lái)說(shuō)明這個(gè)“快捷方式”的作用。
嗯,這個(gè)“快捷方式”其實(shí)也沒(méi)什么特色是不是?不過(guò)最重要的一點(diǎn)是它是完全由系統(tǒng)自帶的功能實(shí)現(xiàn)的,并且不占用任何資源,不論是XP、Vista還是Win7,全部通用。至于Win98……好吧,我承認(rèn)我沒(méi)測(cè)試過(guò)。
這個(gè)“快捷方式”是完全通過(guò)修改注冊(cè)表實(shí)現(xiàn)的,與其說(shuō)是“快捷方式”,更準(zhǔn)確的說(shuō)它是一個(gè)類。我以一個(gè)示例注冊(cè)表文件來(lái)說(shuō)明:
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\CLSID\{7986336A-DFB4-4375-8841-1489E75A7571}]
[HKEY_CLASSES_ROOT\CLSID\{7986336A-DFB4-4375-8841-1489E75A7571}\DefaultIcon]
@="D:\\Program Files\\SunChrome\\Chrome.exe,0"
[HKEY_CLASSES_ROOT\CLSID\{7986336A-DFB4-4375-8841-1489E75A7571}\Shell]
[HKEY_CLASSES_ROOT\CLSID\{7986336A-DFB4-4375-8841-1489E75A7571}\Shell\Open]
@="Chrome"
"Icon"="D:\\Program Files\\SunChrome\\Chrome.exe,0"
[HKEY_CLASSES_ROOT\CLSID\{7986336A-DFB4-4375-8841-1489E75A7571}\Shell\Open\Command]
@="D:\\Program Files\\SunChrome\\Chrome.exe"
[HKEY_CLASSES_ROOT\CLSID\{7986336A-DFB4-4375-8841-1489E75A7571}\Shell\Firefox]
@="Firefox"
"Icon"="D:\\Program Files\\Firefox3\\FirefoxLoader.exe,0"
[HKEY_CLASSES_ROOT\CLSID\{7986336A-DFB4-4375-8841-1489E75A7571}\Shell\Firefox\Command]
@="D:\\Program Files\\Firefox3\\FirefoxLoader.exe"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\{7986336A-DFB4-4375-8841-1489E75A7571}]
@=""
上面這個(gè)注冊(cè)表文件中的{7986336A-DFB4-4375-8841-1489E75A7571}可不是什么隨便的字符串,它叫CLSID(類標(biāo)識(shí)符),可以由我在文末提供的工具guidgen來(lái)生成。至于什么是CLSID,大家自己上網(wǎng)查去,不在本文的討論范圍內(nèi)。下面我分別講解上面每段注冊(cè)表文件的含義:
[HKEY_CLASSES_ROOT\CLSID\{7986336A-DFB4-4375-8841-1489E75A7571}]
@="Chrome"
這句表示創(chuàng)建一個(gè)標(biāo)識(shí)符為{7986336A-DFB4-4375-8841-1489E75A7571}的類,名為Chrome,同時(shí)這個(gè)Chrome也是最終在桌面顯示圖標(biāo)的名稱。
[HKEY_CLASSES_ROOT\CLSID\{7986336A-DFB4-4375-8841-1489E75A7571}\DefaultIcon]
@="D:\\Program Files\\SunChrome\\Chrome.exe,0"
這句定義了這個(gè)類在桌面上顯示的圖標(biāo),當(dāng)然你也可以直接使用ico文件。
[HKEY_CLASSES_ROOT\CLSID\{7986336A-DFB4-4375-8841-1489E75A7571}\Shell]
[HKEY_CLASSES_ROOT\CLSID\{7986336A-DFB4-4375-8841-1489E75A7571}\Shell\Open]
@="Chrome"
"Icon"="D:\\Program Files\\SunChrome\\Chrome.exe,0"(此參數(shù)在XP下無(wú)效)
上面這句定義了雙擊這個(gè)圖標(biāo)的右鍵菜單第一項(xiàng)(也就是默認(rèn)項(xiàng)),在右鍵中顯示的名稱和圖標(biāo),如果去掉Icon這個(gè)值,則右鍵相應(yīng)項(xiàng)前沒(méi)有圖標(biāo)。
[HKEY_CLASSES_ROOT\CLSID\{7986336A-DFB4-4375-8841-1489E75A7571}\Shell\Open\Command]
@="D:\\Program Files\\SunChrome\\Chrome.exe"
這句定義了雙擊這個(gè)圖標(biāo)時(shí)的默認(rèn)操作,也就是所打開(kāi)的程序,就像上例定義的,我讓他打開(kāi)Chrome。
[HKEY_CLASSES_ROOT\CLSID\{7986336A-DFB4-4375-8841-1489E75A7571}\Shell\Firefox]
@="Firefox"
"Icon"="D:\\Program Files\\Firefox3\\FirefoxLoader.exe,0"
接下去這個(gè)就是定義右鍵菜單的下一項(xiàng)了。[HKEY_CLASSES_ROOT\CLSID\{7986336A-DFB4-4375-8841-1489E75A7571}\Shell]后所跟隨的“Firefox”字樣可隨便自定義,一般為了便于辨別常常使用所啟動(dòng)程序的名稱。
默認(rèn)值表示他在右鍵菜單中所顯示的名稱,Icon的值表示他在右鍵菜單中顯示的圖標(biāo)。
[HKEY_CLASSES_ROOT\CLSID\{7986336A-DFB4-4375-8841-1489E75A7571}\Shell\Firefox\Command]
@="D:\\Program Files\\Firefox3\\FirefoxLoader.exe"
這項(xiàng)當(dāng)然就是表示右鍵中Firefox這項(xiàng)所啟動(dòng)的程序了。
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Desktop\NameSpace\{7986336A-DFB4-4375-8841-1489E75A7571}]
@=""
我們?cè)谏厦嬉呀?jīng)創(chuàng)建了一個(gè)名為{7986336A-DFB4-4375-8841-1489E75A7571}的類標(biāo)識(shí)符,那么如何在桌面上顯示它呢?上面這個(gè)注冊(cè)表項(xiàng)就是實(shí)現(xiàn)的這個(gè)功能。聰明的你是否已經(jīng)發(fā)現(xiàn)了這個(gè)注冊(cè)表路徑中的Desktop字樣呢?那么既然有Desktop,有沒(méi)有其他的呢?能不能在計(jì)算機(jī)的其他位置創(chuàng)建這種多功能的“快捷方式”呢?這個(gè)就當(dāng)作課后作業(yè)好了,提示下,只要有NameSpace子項(xiàng)的都可以。
如果還想在右鍵中添加其他的程序也只要以此類推就可以了。以上便完成了最簡(jiǎn)單的一個(gè)“快捷方式”。如果還想創(chuàng)建一個(gè)新的“快捷方式”,注意不要使用同一個(gè)CLSID,必須換一個(gè)才行。
接下來(lái)我們?cè)撋晕U(kuò)展下了。右鍵菜單我們經(jīng)常用,我們也經(jīng)常發(fā)現(xiàn)右鍵菜單中常常有很多分欄線把整個(gè)右鍵菜單分成好幾欄,如下圖中“藍(lán)冰工作室FTP”項(xiàng)上下的分隔線。那在這里我們?nèi)绾螌?shí)現(xiàn)呢?(此功能在XP下無(wú)效)
其實(shí)也很簡(jiǎn)單,依然以上面的注冊(cè)表示例為例。例如要在Firefox項(xiàng)的上下添加分欄線,則添加以下注冊(cè)表項(xiàng):
[HKEY_CLASSES_ROOT\CLSID\{7986336A-DFB4-4375-8841-1489E75A7571}\Shell\Firefox]
"SeparatorAfter"=dword:00000001"
"SeparatorBefore"=dword:00000001"
另外還可以讓他在桌面圖標(biāo)下的文字消失,只剩一個(gè)圖標(biāo),如下圖中的Chrome圖標(biāo)所示:
其實(shí)這也很簡(jiǎn)單,添加以下項(xiàng)即可:
[HKEY_CLASSES_ROOT\CLSID\{7986336A-DFB4-4375-8841-1489E75A7571}\Shell\Firefox]
"WantsFORDISPLAY"=""
其實(shí)右鍵菜單中還可以有更多的項(xiàng)的,如剪切、復(fù)制、刪除等,如下圖所示:
添加以下注冊(cè)表項(xiàng)可以實(shí)現(xiàn)這個(gè)目的:
[HKEY_CLASSES_ROOT\CLSID\{7986336A-DFB4-4375-8841-1489E75A7571}\ShellFolder]
"Attributes"=dword:00000000
其中當(dāng)Attributes的值為0時(shí)沒(méi)有其他菜單(但是“創(chuàng)建快捷方式”這項(xiàng)依然存在,我也不知道怎么去掉它,望知道的TX告知。)
當(dāng)Attributes的值為1時(shí)右鍵中有“復(fù)制”項(xiàng),如上圖的左上角所示。
當(dāng)Attributes的值為2時(shí)右鍵中有“剪切”項(xiàng),如上圖的右上角所示。
當(dāng)Attributes的值為3時(shí)右鍵中同時(shí)存在“復(fù)制”和“剪切”項(xiàng),如上圖左下角所示。
如果刪除[HKEY_CLASSES_ROOT\CLSID\{7986336A-DFB4-4375-8841-1489E75A7571}\ShellFolder]這一項(xiàng)的話則出現(xiàn)的是“剪切”和“刪除”,如上圖的右下角所示。
好了,至此整個(gè)多功能“快捷方式”的創(chuàng)建方法就介紹完畢了。
聯(lián)系客服