上一篇谈了桌面任务栏完全透明的方法,但是为了更加完美,我想要的是如下:
(1)模糊化
(2)完全透明
(3)指定任意颜色及透明程度
以上三点已经实现了.
主要是第三点,涉及到 颜色进制转换,还有一个颜色选择器的制作.s
关于这个,win自定的api的那个界面不好看而且没有设置透明度的,完全过时了,所以必须搞一个好看的:
对比一下吧:
我的要求只有简单实用和好看,而且这个界面我后期想怎么变自己说了算
这么好看的颜色选择器,在AHK里面我没有找到其他的,还得自己动手
这个是通过HTML+css+JS+AHK实现的效果,我也是查了好多资料,修改后才这样的.
css有个优点是渐变色上实现容易,所以在此基础上搭积木比较合适.
HTML+JS 网络上有实现的文件,可以自己查询.
然后AHK里面调用一下neutro这个库,可以引用JS和HTML了.
neutron := new NeutronWindow()
neutron.Load("colorPicker/index.html") ;
neutron.Gui("+LabelNeutron")
;nertron.gui("+LastFound")
neutron.wnd.init() ;js初始化获取变量
neutron.wnd.rgbaText.value := rgbaText_INI
neutron.wnd.colorElement.style.backgroundColor := colorBack_INI
neutron.wnd.transparencyThumb.style.left := transThumb_INI
neutron.wnd.transparency.style.backgroundColor := transcolorBack_INI
还有任务栏的颜色传输的格式16进制,并且是ABGR,倒着来的.所有要转换:
HEXABGR(R, G, B, A := 00) { ;0~255
SetFormat, Integer, Hex
Return, (A << 24) | (B << 16) | (G << 8) | R ;RGBA转 ABGR的16进制 0x开头的
}
这是我觉得最简单的转换方法了,没有之一.
然后,我把它挂在自己的自定义的状态栏上,单击随时可以更换心情!
总之,我可以放心的替换TranslucentTB了!!!