Разделы реестра WCS

WCS использует разделы реестра, чтобы сообщить о возникновении определенных событий цветового профиля. Приложения должны запрашивать эти разделы реестра на наличие обновленного состояния системного цветового профиля.

Изменен активный цветной профиль

Приложения могут захотеть реагировать на события изменения профиля цвета для устройства мониторинга; это гарантирует, что они всегда имеют точные сведения о цвете для своего целевого объекта, даже если пользователь или другое приложение изменило активный профиль для устройства.

Классические приложения

Классические приложения должны ожидать изменений в реестре, чтобы определить, когда изменились связи цветовых профилей с помощью RegNotifyChangeKeyValue. Приложение должно регистрироваться как для изменений сопоставлений профилей для каждого пользователя, так и для изменений на уровне системы.

RegNotifyChangeKeyValue следует инициализировать с помощью ключа HKEY, предоставленного RegOpenKeyEx. 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. Затем он должен вызвать WcsGetDefaultColorProfile с правильным WCS_PROFILE_MANAGEMENT_SCOPE значением, чтобы получить новый активный профиль цвета для монитора. Обратите внимание, что не все изменения раздела реестра будут соответствовать фактическому изменению текущего активного цветового профиля. приложение проверка, действительно ли изменился профиль, возвращенный WcsGetDefaultColorProfile.

Универсальные приложения windows (UWP)

Универсальные приложения для Windows не имеют доступа к указанным выше разделам реестра. Вместо этого они должны зарегистрировать обработчик для события DisplayInformation.ColorProfileChanged . Это событие возникает при изменении активного цветового профиля монитора, на котором выполняется приложение. ColorProfileChanged учитывает, используются ли сопоставления профилей для каждого пользователя или всей системы; эти сведения абстрагируются из приложений UWP.

При ответе на событие ColorProfileChanged приложение должно запросить текущий активный профиль с помощью DisplayInformation.GetColorProfileAsync.