Sdílet prostřednictvím


Klíče registru WCS

WCS používá klíče registru k signálu, že došlo k určitým událostem profilu barev. Aplikace by se měly na tyto klíče registru dotazovat na aktualizovaný stav profilu barev systému.

Změna aktivního barevného profilu

Aplikace můžou chtít reagovat na události změny barevného profilu monitoru zařízení; tím zajistíte, že budou mít vždy přesné informace o barvě pro svůj cíl, i když uživatel nebo jiná aplikace změnily aktivní profil zařízení.

Desktopové aplikace

Desktopové aplikace by měly naslouchat změnám registru a určit, kdy došlo ke změně přidružení profilů barev pomocí RegNotifyChangeKeyValue. Aplikace by se měla zaregistrovat jak pro změny přidružení profilu pro jednotlivé uživatele, tak pro změny v celém systému.

RegNotifyChangeKeyValue by měl být inicializován pomocí klíče HKEY poskytovaného RegOpenKeyEx. RegOpenKeyEx by se měla inicializovat pomocí následujících umístění stromu registru:

   
Přidružení profilů pro jednotlivé uživatele HKEY_CURRENT_USER SOFTWARE\Microsoft\Windows NT\CurrentVersion\ICM\ProfileAssociations\Display\{4d36e96e-e325-11ce-bfc1-08002be10318}
Přidružení profilů na úrovni systému HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e96e-e325-11ce-bfc1-08002be10318}

 

Když je aplikace upozorněna na změnu klíče registru, měla by se nejprve dotazovat, zda se přidružení pro jednotlivé uživatele nebo systém používají voláním WcsGetUsePerUserProfiles. Potom by měl volat WcsGetDefaultColorProfile se správnou WCS_PROFILE_MANAGEMENT_SCOPE hodnotou získat nový aktivní barevný profil monitoru. Všimněte si, že ne všechny změny klíče registru budou odpovídat skutečné změně v aktuálně aktivním barevném profilu; aplikace mush zkontrolujte, jestli se profil vrácený WcsGetDefaultColorProfile skutečně změnil.

Univerzální aplikace pro Windows (UPW)

Univerzální aplikace pro Windows nemají přístup k výše uvedeným klíčům registru. Místo toho by měli zaregistrovat obslužnou rutinu pro DisplayInformation.ColorProfileChanged události. Tato událost se aktivuje při každé změně aktivního barevného profilu monitoru, na kterém je aplikace spuštěná. ColorProfileChanged bere v úvahu, zda se používají přidružení profilů pro jednotlivé uživatele nebo pro celý systém; tyto informace jsou abstrahovány z aplikací pro UPW.

Při reagování na colorProfileChanged události by aplikace měla dotazovat aktuálně aktivní profil pomocí DisplayInformation.GetColorProfileAsync.