許多控制面板應用程式都會顯示 Properties 屬性表,讓使用者能夠檢視和修改各種裝置和系統設定。 這兩個應用程式—滑鼠和顯示],允許屬性表處理程式以自定義頁面取代其一或多個頁面。 下列螢幕快照顯示 滑鼠屬性 屬性表。
控制面板應用程式的屬性表處理程式類似於檔案類型的屬性表處理程式,但有兩個主要例外:
- 它們是透過控制面板應用程式呼叫,而不是透過系統外殼。
- 它們的註冊方式不同。
您需要知道的事項
技術
- 蜆殼
先決條件
- 瞭解控制面板
- 瞭解快捷功能表
指示
步驟 1:註冊控制面板應用程式的屬性表處理程式
控制面板應用程式屬性表處理程式必須在控制面板子機碼下註冊。 此機碼可以位於兩個位置的其中之一,視處理程式是每一使用者還是每部計算機而定。 每位使用者的註冊,控制面板子機碼為 HKEY_CURRENT_USER\控制面板。 巨集REGSTR_PATH_CONTROLPANEL如 Regstr.h 中所定義,可用於程式代碼中取代 「控制面板」。 每台電腦註冊的位置是:
HKEY_LOCAL_MACHINE
Software
Microsoft
Windows
Current Version
Controls Folder
在程式碼中可以將此路徑稱為 HKEY_LOCAL_MACHINE\REGSTR_PATH_CONTROLSFOLDER,這是使用在 Regstr.h 中定義的 REGSTR_PATH_CONTROLSFOLDER 巨集來達成的。
可以讓屬性表處理程序替換頁面的控制面板應用程式,在 [控制面板] 的子項下有一個子項,這些子項是以應用程式命名的,例如 [滑鼠] 和 [顯示]。 應用程式的子機碼必須具有 shellex 子機碼,其中包含 PropertySheetHandlers 子機碼。 若要註冊屬性表處理程式,請將其 GUID 新增至與控制台應用程式相關聯的 PropertySheetHandlers 子機碼。 若要這樣做,請在 PropertySheetHandlers 子機碼下建立一個新的子機碼,以屬性表處理程式命名,並將其預設值設為處理程式 GUID 的字串格式。
下列範例會根據每部計算機註冊滑鼠控制面板應用程式的屬性表處理程式。 若要以每個使用者為基礎進行註冊,請將 HKEY_LOCAL_MACHINE\REGSTR_PATH_CONTROLSFOLDER 取代為 HKEY_CURRENT_USER\REGSTR_PATH_CONTROLPANEL。
HKEY_LOCAL_MACHINE
REGSTR_PATH_CONTROLSFOLDER
Mouse
shellex
PropertySheetHandlers
MyPropHandler
(Default) = {MyPropHandler CLSID GUID}
步驟 2:實作控制面板應用程式的屬性表處理程式
實作控制面板屬性表處理程式的程式與 如何登錄及實作檔類型的屬性表處理程式中討論的程式非常類似。 主要差異在於,現在 IShellPropSheetExt::ReplacePage 需要非token 實作,而不是 IShellPropSheetExt::AddPages。
當控制面板應用程式即將顯示其屬性表時,它會針對可取代的每個頁面呼叫屬性表處理程式的 IShellPropSheetExt::ReplacePage 方法一次。 uPageID 參數會設定為頁面的標識碼。 可用頁面的標識碼定義於 Cplext.h 中。 下表列出目前可用的標識碼。
頁面標識碼 | 描述 | 控制面板應用程式 |
---|---|---|
CPLPAGE_滑鼠按鈕 | 按鈕頁面 | 鼠 |
滑鼠指標運動設定 | 動作頁面 | 鼠 |
滑鼠滾輪設置 | 滾輪頁面 | 鼠 |
鍵盤速度設定 | 速度頁面 | 鍵盤 |
顯示背景設置頁面 | 背景頁面 | 顯示 |
備註
建立和取代頁面的程式與新增頁面的程式相同。 如需詳細資訊,請參閱 如何註冊及實作檔類型的屬性表處理程式。