WCS 登錄機碼
WCS 會使用登錄機碼來發出特定色彩設定檔事件的訊號。 應用程式應該查詢這些登錄機碼,以取得更新的系統色彩設定檔狀態。
作用中色彩設定檔已變更
應用程式可能會想要回應監視裝置的色彩設定檔變更事件;這可確保使用者或另一個應用程式已變更裝置的作用中設定檔,他們一律具有正確的色彩資訊。
傳統型應用程式
傳統型應用程式應該接聽登錄的變更,以判斷色彩設定檔關聯何時使用 RegNotifyChangeKeyValue變更。 應用程式應該同時註冊個別使用者設定檔關聯變更,以及整個系統的變更。
RegNotifyChangeKeyValue 應該使用 RegOpenKeyEx 所提供的 HKEY初始化。 RegOpenKeyEx 應該使用下列登錄樹狀結構位置來初始化:
個別使用者設定檔關聯 | HKEY_CURRENT_USER SOFTWARE\Microsoft\Windows NT\CurrentVersion\ICM\ProfileAssociations\Display\{4d36e96e-e325-11ce-bfc1-08002be10318} |
全系統設定檔關聯 | HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e96e-e325-11ce-bfc1-08002be10318} |
當應用程式收到登錄機碼變更的通知時,應該先藉由呼叫 WcsGetUsePerUserProfiles來查詢每個使用者或全系統的關聯。 然後,它應該使用正確的WCS_PROFILE_MANAGEMENT_SCOPE值呼叫WcsGetDefaultColorProfile,以取得監視器的新使用中色彩設定檔。 請注意,並非所有登錄機碼變更都會對應至目前使用中色彩設定檔中的實際變更;應用程式 mush 會檢查 WcsGetDefaultColorProfile 所傳回的設定檔是否已實際變更。
通用 Windows (UWP) 應用程式
通用 Windows 應用程式無法存取上述登錄機碼。 相反地,他們應該註冊 DisplayInformation.ColorProfileChanged 事件的處理常式。 每當應用程式執行所在的監視器使用中色彩設定檔已變更時,就會引發此事件。 ColorProfileChanged 會考慮使用每個使用者或全系統的設定檔關聯;這項資訊會從 UWP 應用程式抽象化。
回應 ColorProfileChanged 事件時,應用程式應該使用 DisplayInformation.GetColorProfileAsync查詢目前使用中的設定檔。