gpt4 book ai didi

windows - 有没有办法改变非客户区的 Windows Aero 颜色?

转载 作者:可可西里 更新时间:2023-11-01 14:45:16 25 4
gpt4 key购买 nike

我注意到 Windows 已自动将 Windows 的非客户区设置为主题颜色 - Windows Aero。我认为这是一个好主意,因为它使主题在程序之间保持一致,并且界面总体上更好。作为一个狡猾的人,我渴望在这里颠覆微软的意图并获得一个使用我的程序设置的颜色而不是操作系统设置的 GUI。

想法?

最佳答案

是的,这是可能的,但您需要使用未记录的函数。这意味着您的程序可能无法在未来版本的 Windows 上运行,即使发布了服务包或其他更新也是如此。

如果您愿意冒险,this blog post has full details并对功能以及如何使用它们进行逆向工程。它包括您可以实现的屏幕截图: Screenshot of Delphi DWM Aero glass color changes

基本上,您需要两个函数:DwmGetColorizationParametersDwmSetColorizationParameters。您传递给它们的结构和方法原型(prototype)是(在 Delphi 中,但我相信如果您使用的是 C++,则可以转换为 C++):

tagCOLORIZATIONPARAMS = record
clrColor : COLORREF; //ColorizationColor
clrAftGlow : COLORREF; //ColorizationAfterglow
nIntensity : UINT; //ColorizationColorBalance -> 0-100
clrAftGlowBal : UINT; //ColorizationAfterglowBalance
clrBlurBal : UINT; //ColorizationBlurBalance
clrGlassReflInt : UINT; //ColorizationGlassReflectionIntensity
fOpaque : BOOL;
end;

COLORIZATIONPARAMS=tagCOLORIZATIONPARAMS;
TColorizationParams=COLORIZATIONPARAMS;
PColorizationParams=^TColorizationParams;

TDwmGetColorizationParameters = procedure(out parameters :TColorizationParams); stdcall;
TDwmSetColorizationParameters = procedure(parameters :PColorizationParams; unknown:BOOL); stdcall;

如果您不习惯这种语法,顶部定义了一个结构,底部两行是方法原型(prototype)。 ^ 表示指针,因此 Set 方法采用指向结构的指针。 out is tricky并且意味着该方法也采用指向结构的指针。 procedure 意味着它返回 void。如果您仍然无法阅读它,请发表评论,我会翻译成 C。

你应该能够从中找出你需要的一切,但如果你想要更多细节或使用它的例子,那么 read the blog post . (这是一篇优秀的文章,值得流量。)

关于windows - 有没有办法改变非客户区的 Windows Aero 颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12907441/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com