我們注意到,在安裝了360安全衛士后,Windows 10控制面板中就會自動多出一個“360強力卸載”工具。那么,它是如何被添加進來的?如果我們要將自己常用的注冊表編輯器或其他工具加入到控制面板,該如何實現?與此相反的是,還有一些系統組件本該存在于控制面板中,我們卻在某些電腦的控制面板中找不到它們的身影,這些項目又是如何被隱藏的呢?下面我們解密這個過程。
1. 控制面板 程序入駐任我行
我們知道,一個文件類型、對象或系統組件要“落戶”于Windows注冊表,必須要有對應于該項目的唯一標識編號。Windows注冊表是使用CLSID項來定義項目唯一性的(CLSID即Class ID的縮寫)。由于Windows中通常采用GUID代碼代替Class ID,因此,我們只需為“注冊表編輯器”指定一組GUID代碼,即可為該系統組件在注冊表中提供唯一性標識。GUID全稱Globally Unique Identifier,意為“全局唯一標識符”,是一種由算法生成的唯一標識數字串。GUID的格式為“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”,其中每個x是0-9或a-f范圍內的一個十六進制數。
由于手動編制上述代碼太過復雜,因此我們可以利用微軟GuidGen tool基于Web的GUID在線服務網站(https://www.guidgen.com/)自動生成這樣的代碼。首先訪問上述網站,點擊Generate new GUID按鈕,便會生成一組GUID代碼。本例中,我們使用其自動生成的一組代碼e054cbd2-94e6-4564-a35b-29e29fb439d2,作為“注冊表編輯器”工具在注冊表中的標識代碼(圖1)。

接下來,需要將上述GUID代碼添加到注冊表的相關分支中。
右鍵單擊“開始”按鈕并選擇“運行”,輸入REGEDIT回車,啟動注冊表編輯器。依次定位到“HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel\NameSpace”。右鍵單擊NameSpace項,然后選擇“新建→項”,在其下新建一個子項,并將其命名為{e054cbd2-94e6-4564-a35b-29e29fb439d2},然后將其下“默認”的“數值數據”值修改為“注冊表編輯器”(圖2)。

之后,定位到注冊表編輯器“HKEY_CLASSES_ROOT\CLSID”分支,同樣新建{e054cbd2-94e6-4564-a35b-29e29fb439d2}子項。雙擊“默認”,將其數值數據設置為“注冊表編輯器”。在CLSID下新建兩個字符串項:一個名為InfoTip,將其數值數據設為“打開注冊表編輯器”,此為鼠標移動到控制面板項上時顯示的提示信息;另一個名為System.ControlPanel.Category,數值數據設為代碼5,表示將“注冊表編輯器”歸入“系統和安全”分組中(圖3)。

若未指定代碼值,則默認歸入“所有控制面板選項”中。具體分類和代碼間的關系見表(表)。

在注冊表中調用某個程序的核心,是建立注冊表中項目與程序路徑的關聯。具體到本例,就是要建立regedit程序與前述相關注冊表項的關聯。
首先在{e054cbd2-94e6-4564-a35b-29e29fb439d2}項下新建名為DefaultIcon的子項,該子項“默認”值的數值數據為“注冊表編輯器”程序路徑“%SystemRoot%\regedit.exe”。DefaultIcon鍵值表示該程序圖標。隨后,在上述項下新建名為Shell的子項,在Shell項下新建Open子項,在Open項下新建command子項。command鍵值對應打開注冊表編輯器的命令regedit。在右側窗格中雙擊“默認”值,將其數值數據設為“regedit”(圖4)。

經過如上操作,我們便可以在控制面板窗口中找到“注冊表編輯器”的入口。點擊“注冊表編輯器”鏈接文字,即可啟動注冊表編輯器。
明白了上述原理之后,如果希望將電腦中未納入控制面板的工具,或者由用戶安裝的第三方系統維護工具也納入到控制面板來管理,只需將上述command鍵值對應的命令修改為第三方程序的路徑,并修改相應的名稱和提示信息內容即可。
2. 系統項目 或顯或隱任我控
控制面板中不但可以添加任意程序,存在于其中的項目還可以被隱藏。要從控制面板窗口中隱藏一個項目,例如“鼠標”、“個性化”、“系統”等項目,打開本地組策略編輯器,依次定位到“用戶配置→管理模板→控制面板”,然后雙擊右側窗格中的“隱藏指定的控制面板項“(圖5)。

在接下來的配置窗口中,選擇“已啟用”,下方的“顯示”選項被激活,點擊此按鈕,在不允許列表中填寫隱藏項目所對應的代碼,例如:“鼠標”為“Microsoft.Mouse”、“系統”為“Microsoft.System”、“個性化”為“Microsoft.Personalization”(圖6)。這樣就可以將控制面板中的某個項目隱藏起來了。

|