1
Следующий код Устанавливает цветовой фильтр экрана на определенный цвет.Получить цвет текущего цветного фильтра экрана
Как я могу вместо GET цвет экрана?
[DllImport("GDI32.dll")]
private unsafe static extern bool SetDeviceGammaRamp(IntPtr hdc, void* ramp);
private static IntPtr hdc;
public unsafe bool SetLCDbrightness(Color c)
{
short red = c.R;
short green = c.G;
short blue = c.B;
Graphics gg = Graphics.FromHwnd(IntPtr.Zero);
hdc = gg.GetHdc();
short* gArray = stackalloc short[3 * 256];
short* idx = gArray;
short brightness = 0;
for (int j = 0; j < 3; j++)
{
if (j == 0) brightness = red;
if (j == 1) brightness = green;
if (j == 2) brightness = blue;
for (int i = 0; i < 256; i++)
{
int arrayVal = i * (brightness);
if (arrayVal > 65535) arrayVal = 65535;
*idx = (short)arrayVal;
idx++;
}
}
// For some reason, this always returns false?
bool retVal = SetDeviceGammaRamp(hdc, gArray);
gg.Dispose();
return false;
}
'GetDeviceGammaRamp'? См. [Правильное использование SetDeviceGammaRamp] (http://stackoverflow.com/questions/8359607/correct-usage-of-setdevicegammaramp) – bokibeg