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