出于主题目的,我希望检测Windows任务栏的颜色(在我的情况下,为任务栏图标)。
我正在使用Java,但是欢迎使用任何解决方案,因为我很乐意根据需要对其进行转换。
我的第二次尝试是截取任务栏的屏幕截图,并尝试猜测它是深色还是浅色主题。
假设我不想要依靠Windows徽标的白色/黑色,有没有办法检测到这一点?
相关:
您应该可以通过User32.dll的GetSysColor()
来获得它。
GetSysColor()
然后:
public interface MyUser32 extends User32 {
MyUser32 INSTANCE =
(MyUser32) Native.load("user32", User32.class, W32APIOptions.DEFAULT_OPTIONS);
int COLOR_WINDOW = 5;
int GetSysColor(int nIndex);
}
32位返回值为int rgb = MyUser32.INSTANCE.GetSysColor(MyUser32.COLOR_WINDOW);
(0x00bbggrr)