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 查询当前活动的配置文件。