特定の色(色#A9D691)が選択されたときにフレークの色が白に変わるように、ファジーフレークのスクリーンセーバーをハックしようとしています。私はそれを行う方法を正確に理解できないようです(私はこのようなものには少し慣れていません)。
コードを確認しましたが、フレークの色はFuzzyFlakesInit()
関数の終わり近く、ここのあたりで設定されているようです。
Flake.ForeColor = FuzzyFlakesColorResource(Flake.Colors.Fore);
Flake.BackColor = FuzzyFlakesColorResource(Flake.Colors.Back);
Flake.BordColor = FuzzyFlakesColorResource(Flake.Colors.Bord);
Flake.GCValues.foreground = Flake.ForeColor;
Flake.GCValues.background = Flake.BackColor;
私がやろうとしているのは、最初に特定の色が設定されているかどうかを確認し、設定されている場合はFlake.Colors.Fore
変数を白に設定することです。私は次のようなコードを使用してみました:
if (flake->Colors.Fore == (char) "#A9D691") {
flake->ForeColor = FuzzyFlakesColorResource(flake, "white");
} else {
flake->ForeColor = FuzzyFlakesColorResource(flake, flake->Colors.Fore);
}
flake->BackColor = FuzzyFlakesColorResource(flake, flake->Colors.Back);
flake->BordColor = FuzzyFlakesColorResource(flake, flake->Colors.Bord);
悲しいことに、そのような単純なハックは機能しません。FuzzyFlakesColorHelper()
したがって、関数はすでにこれらの変数を設定しているように見えるので、「#A9D691」を他の何かに変換する必要があるかどうかはわかりません。