Udostępnij przez


Klucze rejestru WCS

Usługa WCS używa kluczy rejestru, aby zasygnalizować, że wystąpiły określone zdarzenia profilu kolorów. Aplikacje powinny wysyłać zapytania dotyczące tych kluczy rejestru w celu zaktualizowania stanu profilu koloru systemu.

Profil aktywnego koloru został zmieniony

Aplikacje mogą chcieć reagować na zdarzenia zmiany profilu kolorów dla urządzenia monitora; Gwarantuje to, że zawsze mają dokładne informacje o kolorze dla ich miejsca docelowego, nawet jeśli użytkownik lub inna aplikacja zmieniła aktywny profil dla urządzenia.

Aplikacje klasyczne

Aplikacje klasyczne powinny nasłuchiwać zmian w rejestrze w celu określenia, kiedy skojarzenia profilu kolorów zmieniły się przy użyciu RegNotifyChangeKeyValue. Aplikacja powinna rejestrować zarówno zmiany skojarzenia profilu dla użytkownika, jak i zmiany w całym systemie.

RegNotifyChangeKeyValue należy zainicjować za pomocą klucza HKEY dostarczonego przez RegOpenKeyEx. RegOpenKeyEx należy zainicjować przy użyciu następujących lokalizacji drzewa rejestru:

   
Skojarzenia profilów poszczególnych użytkowników HKEY_CURRENT_USER SOFTWARE\Microsoft\Windows NT\CurrentVersion\ICM\ProfileAssociations\Display\{4d36e96e-e325-11ce-bfc1-08002be10318}
Skojarzenia profilów dla całego systemu HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Class\{4d36e96e-e325-11ce-bfc1-08002be10318}

 

Gdy aplikacja zostanie powiadomiona o zmianie klucza rejestru, najpierw należy wykonać zapytanie, czy skojarzenia poszczególnych użytkowników lub całego systemu są używane przez wywołanie WcsGetUsePerUserProfiles. Następnie należy wywołać WcsGetDefaultColorProfile z odpowiednią wartością WCS_PROFILE_MANAGEMENT_SCOPE, aby uzyskać nowy aktywny profil kolorów dla monitora. Należy pamiętać, że nie wszystkie zmiany klucza rejestru będą odpowiadać rzeczywistej zmianie aktualnie aktywnego profilu koloru; aplikacja mush sprawdź, czy profil zwrócony przez WcsGetDefaultColorProfile został rzeczywiście zmieniony.

Aplikacje uniwersalne systemu Windows (UWP)

Aplikacje uniwersalne systemu Windows nie mają dostępu do powyższych kluczy rejestru. Zamiast tego należy zarejestrować program obsługi dla zdarzenia DisplayInformation.ColorProfileChanged. To zdarzenie jest uruchamiane za każdym razem, gdy aktywny profil koloru dla monitora, na którym działa aplikacja, uległ zmianie. ColorProfileChanged uwzględnia, czy są używane skojarzenia profilu dla poszczególnych użytkowników lub całego systemu; te informacje są abstrahowane od aplikacji platformy UWP.

W odpowiedzi na zdarzenie ColorProfileChanged aplikacja powinna wysłać zapytanie do aktualnie aktywnego profilu przy użyciu DisplayInformation.GetColorProfileAsync.