GsuhyFihx 发表于 2023-8-15 23:55

TranslucentTB-release源码

API:SetWindowCompositionAttribute在win11 21h2之后就无法透明任务栏了,而TranslucentTB可以实现,下载了TranslucentTB源码,看不懂,来个懂的大佬解释一下TranslucentTB在22h2之后的版本是怎么实现的?







GsuhyFihx 发表于 2023-8-16 11:03

来个看的懂源码的解释一下 实现原理

Patches 发表于 2023-8-16 00:13

本帖最后由 Patches 于 2023-8-16 00:17 编辑

看错   我还以为你是问更改透明的方法

实现方法不太清楚   我是直接注册表修改的

shaoyewudao 发表于 2023-8-16 08:41

我只会用,不会看

全村最靓的仔 发表于 2023-8-16 09:04

我用TranslucentTB无法实现win1122h2版本任务栏透明{:1_923:},求大佬们教教

锤锤 发表于 2023-8-16 11:00

推荐使用StartAllBack

xmafeng 发表于 2023-8-16 11:15

新版的可以支持11了,搜一下最新的

一只小凡凡 发表于 2023-8-16 11:21

本帖最后由 一只小凡凡 于 2023-8-16 11:40 编辑

通过WindowsAPI SendNotifyMessageW方法向全部窗口发送ImmersiveColorSet消息即可。

微软链接:https://learn.microsoft.com/zh-c ... inuser-sendmessagew

C#实现方法如下:


private static extern bool SendNotifyMessage(uint hWnd, uint Msg, IntPtr wPARAM, IntPtr lPARAM);

const uint HWND_BROADCAST = 0xffff;
const uint WM_SETTINGCHANGE = 0x001A;
SendNotifyMessage(HWND_BROADCAST, WM_SETTINGCHANGE, new IntPtr(0), Marshal.StringToHGlobalAnsi("ImmersiveColorSet"));

GsuhyFihx 发表于 2023-8-16 11:23

一只小凡凡 发表于 2023-8-16 11:21
通过WindowsAPI SendNotifyMessageW方法向全部窗口发送ImmersiveColorSet消息即可。

微软链接:https:// ...

大佬来了   感谢指导容我使用易语言研究一番先

一只小凡凡 发表于 2023-8-16 11:25

本帖最后由 一只小凡凡 于 2023-8-16 11:28 编辑

首先修改注册表,然后全部窗口发送上述的消息,我在C#中用的SendNotifyMessage方法 ,C++可以使用SendNotifyMessageW方法

SendNotifyMessageW(HWND_BROADCAST, WM_SETTINGCHANGE,0,L"ImmersiveColorSet")
页: [1] 2
查看完整版本: TranslucentTB-release源码