Я пишу свою собственную утилиту для настройки цветовой температуры моего дисплея (аналогично f.lux), используя SetDeviceGammaRamp
для настройки относительной яркости каналов RGB.Это работает, однако, он оставляет курсор мыши без изменений.Мое первоначальное впечатление было, что это LUT просто не применяется к аппаратному курсору графического процессора.Однако позже я заметил, что, если я использую приведенный ниже код для изменения системного курсора, он корректируется цветом.
Bitmap bmp = new Bitmap(@"cursor.png");
Cursor cur = new Cursor(bmp.GetHicon());
Win32.SetSystemCursor(cur.Handle, 32512); //32512 = OCR_NORMAL
Однако следующее не работает (без коррекции цвета)
var cur = Win32.LoadCursorFromFile(@"cursor.cur");
Win32.SetSystemCursor(cur, 32512); //32512 = OCR_NORMAL
Я только думаю, что, возможно, первый пример каким-то образом заставляет Windows превращаться в программный курсор.