次の方法で共有


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 を使用して現在アクティブなプロファイルに対してクエリを実行する必要があります。