能使任务栏透明,类似win10应用商店的transTB、
win10任务栏透明代码:
;重新使任务栏透明
~ESC::
~LWin::
~RWin::
~LButton::{
sleep 300
transparentTaskBar()
}
;Func 使任务栏透明
transparentTaskBar()
{
;0:表示禁用玻璃效果和透明度,窗口不会有透明效果。
;1:表示启用玻璃效果,通常以一种轻度透明的方式呈现窗口。
;2:表示启用玻璃效果,通常以更明显的透明方式呈现窗口。
;3:表示启用玻璃效果,通常以更明显的透明方式呈现窗口,并带有模糊效果。
accent_state:=2
WCA_ACCENT_POLICY := 19
pad := A_PtrSize=8 ? 4 : 0
gradient_color:="0x01000000"
ACCENT_POLICY:=Buffer(16,0)
WINCOMPATTRDATA:=Buffer( 4 + pad + A_PtrSize + 4 + pad,0)
hTrayWnd := DllCall("User32\FindWindow", "str", "Shell_TrayWnd", "ptr", 0, "ptr")
NumPut("int",(accent_state>0 && accent_state<4) ? accent_state : 0, ACCENT_POLICY, 0)
NumPut("int",gradient_color, ACCENT_POLICY, 8)
NumPut("int",WCA_ACCENT_POLICY, WINCOMPATTRDATA, 0)
NumPut("int*",ACCENT_POLICY.ptr, WINCOMPATTRDATA, 4 + pad)
NumPut("uint",ACCENT_POLICY.size, WINCOMPATTRDATA, 4 + pad + A_PtrSize)
DllCall("user32\SetWindowCompositionAttribute", "ptr", hTrayWnd, "ptr", WINCOMPATTRDATA)
}
注意目前仅对windows10及其以上系统有效!
学习
Buffer()是什么函数啊,系统识别不了啊
ahk2.x
ahk1.3有啥方法替代这个buffer函数吗
VarSetCapacity
直接将buffer替换为VarSetCapacity还不行,可能还需要改啥参数吧
ahk1.x 参考这篇文章,https://www.autoahk.com/archives/40246
膜拜