我一直在尝试破解 fuzzyflakes 屏幕保护程序,以便在选择特定颜色(颜色 #A9D691)时将薄片的颜色更改为白色。我似乎无法弄清楚该怎么做(我对这些东西有点菜鸟)。
我看过 code看起来薄片的颜色设置在 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);
遗憾的是,像这样的简单 hack 不起作用。所以我不知道我是否必须将“#A9D691”转换为其他内容或其他内容,因为 FuzzyFlakesColorHelper()
函数似乎已经设置了这些变量。
最佳答案
if (flake->Colors.Fore == (char) "#A9D691")
将颜色字符串与指向字符串文字 "#A9D691"
的指针进行比较,转换为 char
,它从不返回 true。你想比较字符串的值,所以使用 strcmp
if (strcmp(flake->Colors.Fore, "#A9D691") == 0)
关于在 fuzzyflakes 屏幕保护程序中更改实际的薄片颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11532004/