- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
如何使用DwmGetColorizationColor
?
documentation说它返回两个值:
0xAARRGGBB
包含用于玻璃成分的颜色这是我喜欢的颜色,漂亮的呕吐绿色:
您可以注意到颜色是绿色的,半透明标题栏(白色背景)非常清楚地显示鼻涕颜色:
我尝试从 Windows 获取颜色:
DwmGetColorizationColor(dwCcolorization, bIsOpaqueBlend);
我明白了
dwColorization: 0x0D0A0F04
bIsOpaqueBlend: false
根据文档,该值的格式为 AARRGGBB
,因此包含:
AA: 0x0D (13)
RR: 0x0A (10)
GG: 0x0F (15)
BB: 0x04 (4)
这可能意味着颜色为 (10, 15, 4),不透明度约为 5.1%。
但是如果你真的看一下这个 RGB 值,它与我想要的鼻涕绿色相差甚远。这是
DwmGetColorizationColor
返回几乎完全透明的黑色,而不是石灰
绿色。
所以问题是:在 Windows Vista/7 中如何获取玻璃颜色?
我尝试使用DwmGetColorizationColor
,但效果不太好。
一个person with same problem, but a nicer shiny picture为了吸引松鼠:
<小时/>So, it boils down to – DwmGetColorizationColor is completely unusable for applications attempting to apply the current color onto an opaque surface.
我爱this guy's screenshots比我的好多了。使用他的屏幕截图作为模板,我制作了更多的 Spark :
对于最后两个屏幕截图,Alpha 混合芯片是真正的部分透明 PNG,与浏览器的背景混合。凉爽的! (我真是个极客)
编辑 2:必须将它们排列成彩虹色。 (我真是个极客)
编辑 3:现在我当然必须添加黄色。
<小时/>入口点 137 处有来自 DwmApi.dll
的未记录导出,我们将其称为 DwmGetColorizationParameters
:
HRESULT GetColorizationParameters_Undocumented(out DWMCOLORIZATIONPARAMS params);
struct DWMCOLORIZATIONPARAMS
{
public UInt32 ColorizationColor;
public UInt32 ColorizationAfterglow;
public UInt32 ColorizationColorBalance;
public UInt32 ColorizationAfterglowBalance;
public UInt32 ColorizationBlurBalance;
public UInt32 ColorizationGlassReflectionIntensity;
public UInt32 ColorizationOpaqueBlend;
}
我们对第一个参数感兴趣:ColorizationColor
。
我们还可以从注册表中读取值:
HKEY_CURRENT_USER\Software\Microsoft\Windows\DWM
ColorizationColor: REG_DWORD = 0x6614A600
所以你选择了创建应用程序兼容性问题的毒药。你可以
一年多以来我一直想问这个问题。我一直都知道这是不可能回答的,而让人们真正关注的唯一方法就是拥有丰富多彩的屏幕截图;开发人员被 Shiny 的东西所吸引。但不利的一面是,这意味着我必须投入各种工作来制作鱼饵。
最佳答案
着色颜色!=所选的基色。我知道这是误导。
但是我很困惑。您借用的图片来 self 的帖子“Retrieving Aero Glass base color for opaque surface rendering”。这不是你想做的吗?我还在帖子中指出了存储所有颜色信息的注册表位置(HKEY_CURRENT_USER\Software\Microsoft\Windows\DWM)以供检索。
已编辑 8/26
DwmGetColorizationColor (dwmapi.dll) 返回“着色颜色”,它是各种颜色(包括您选择的基色)和着色器逻辑的混合,以实现整体玻璃效果。
您需要/想要的所有颜色信息都可以在上面提到的注册表项中找到。基色、混合中使用的颜色以及生成的着色颜色都在那里。
(上面的键存在于 Windows Vista 及更高版本中。)
关于winapi - 远景/7 : How to get glass color?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3560890/
这就是我所拥有的: struct Foo { std::string name; //etc std::map> parse_strategy = { { "n
我正在使用 OCamlWinPlus v1.9RC4。它很糟糕。它经常崩溃,并且缺乏基本功能。可以为 Windows Vista 推荐哪些其他顶级 OCaml 程序? 最佳答案 您可以使用 Windo
如何使用DwmGetColorizationColor ? documentation说它返回两个值: 32 位 0xAARRGGBB 包含用于玻璃成分的颜色 一个 bool 参数,“如果颜色是不透明
我有兴趣将 DLL 注入(inject)到我的 Vista 机器上的 SYSTEM 拥有的进程中。我将使用传统方法 VirtualAllocEx、WriteProcessMemory 和 Create
我有 2 个用 Delphi 编写的应用程序。第一个 exe(带有用户界面)使用 ShellExecuteEx() 调用另一个 exe,后者作为后台进程运行。 当第一个 exe 调用第二个时,会发生以
我是一名优秀的程序员,十分优秀!