写脚本有时候需要选择颜色,在AutoHotkey论坛上看到了 ChooseColor 函数,由于原来的算法有点麻烦,我稍微调整了下分享出来。
并增加了 argb 的选项(不过生成的都是完全不透明的颜色,有需求的可自行调整)
; https://docs.microsoft.com/en-us/windows/win32/api/commdlg/ns-commdlg-choosecolora-r1 ;系统的调色板选择颜色 selectColor(bARGB:=false, bRGB:=true) { VarSetCapacity(CC, 36+64, 0) NumPut(36, CC) NumPut(hOwner:=0, CC, A_PtrSize) NumPut(clDefault:=0, CC, A_PtrSize * 3) NumPut(&CC+36, CC, A_PtrSize * 4) ; COLORREF *lpCustColors NumPut(flags:=3, CC, A_PtrSize * 5) DllCall("comdlg32ChooseColorA", "Str",CC) if bRGB { nBGR := numget(CC, A_PtrSize * 3) cl := (nBGR & 0xFF) << 16 | nBGR & 0x0000FF00 | nBGR >> 16 } else cl := numget(CC, A_PtrSize * 3) return bARGB ? (0xff000000 | cl) : cl ;转成 argb,透明度为ff(完全不透明),可自行修改 }