レジストリを手動で編集することは、システム設定を変更する正しい方法ではないため、最初の試行は失敗しました。お気づきのように、多くの Windows コンポーネント (および他のアプリケーション!) は、これらの構成値を一度読み取ってキャッシュするため、変更が反映されません。もう 1 つの問題 (私がこれを目にする頻度に驚かれることでしょう) は、レジストリをいじろうとするアプリケーションが、一般的には破損してしまうことです。
代わりに、文書化された API を呼び出して設定を変更する必要があります。ほとんどの場合、これを行うための文書化された方法があります。ない場合は、それを行うべきではありません。
今回もその一例と思われます。文書化されたDwmGetColorizationColor関数がありますが、予想されるように、対応するDwmSetColorizationColor関数はありません。
その理由は、他のアプリケーションではなく、ユーザーが色付け設定を変更できる唯一のユーザーであると想定されているためです。これを悪用しないこと、およびユーザーの明示的な要求でのみそのような変更を行うことを約束するかもしれませんが、すべてのアプリケーションがこれを行うとは限りません。多くの人が悪意を持って使用するため、これらの関数は文書化されておらず公開されていません。
しかし、いつものように、先に進むと、通常は文書化されていない方法を見つけることができます。文書化されていない関数を使用する際の問題は、それらが機能する、または機能し続けるという保証がないことです。新しいバージョンの Windows では変更される可能性があるため、意図的に文書化されていません。ご自身の責任においてのみ使用してください。
この場合、DumpBin などのプログラムを使用して、DWM DLL からエクスポートされたすべての関数のリストを取得すると ( dwmapi.dll)、文書化されていないエクスポートされた関数が多数表示されます。
あなたが興味を持っているのはDwmGetColorizationParametersとDwmSetColorizationParametersです。これらの関数はどちらも、COLORIZATIONPARAMS必要な値を含む構造体を引数として取ります。
したがって、これらの関数をリバース エンジニアリングして、適切な定義を取得する必要があります。次に、DwmGetColorizationParameters関数を呼び出し、構造体を渡しCOLORIZATIONPARAMSて現在の構成設定を取得できます。現在の色付けの色を含む構造体のメンバーを変更します。次に、その変更されたバージョンの構造体をDwmSetColorizationParameters関数に渡します。
これを行うことはお勧めしません。