2011-01-05 59 views

回答

1

这工作,返回PIL兼容的调色板:

import ctypes, win32gui 
def getPalette(hwnd): 
    #hwnd = win32gui.GetDesktopWindow() #if you want desktop window palette? 

    hwndDC = win32gui.GetWindowDC(hwnd) 

    buff = ctypes.c_buffer("0"*(256*4)) #R, G, B, and flags 
    ctypes.windll.gdi32.GetSystemPaletteEntries(hwndDC, 0, 256, buff) 

    win32gui.ReleaseDC(hwnd, hwndDC) 

    #ignore every 4th entry which is the flags 
    res = [ord(x) for i,x in enumerate(buff) if i%4 != 3] 
    return res