Возможно, подобный вопрос уже присутствует на сайте, но я много искал и не нашел подходящего решения, поэтому я публикую его здесь.
Я делаю приложение Night Light, которое имеет два варианта:
Уменьшить яркость ПК
Примените маску фильтра синего света поверх экрана.
Я делаю это приложение кроссплатформенным, поэтому я уже нашел решение для систем Linux, где я использовал утилиту xrandr для настройки яркости и гаммы на программном уровне, и мое приложение работает безупречно.
Основная проблема связана с системами Windows, где функция яркости доступна только для портативных экранов, таких как ноутбуки. Я не могу найти никакого решения для этого. Я использовал Qt5 для создания полупрозрачного окна приложения, которое хорошо работает, но не соответствует требованиям, потому что элементы, отображаемые на уровне ядра, не маскируются, например курсор, панель задач, меню «Пуск», центр действий и многое другое.
Я много и много искал, включая Microsoft Developer Network, где документация включала Win32 API, где присутствовала функция яркости, но у меня это не сработало, так как у меня был настольный ПК.
Итак, моя главная проблема заключается в том, как настроить яркость всех ПК с Windows, включая ноутбуки, настольные компьютеры и все остальные.
Я работаю над Python с модулем ctypes. Я не очень хорошо знаком с VC+ и даже не могу позволить себе установить его в своей системе, так как он занимает слишком много памяти и ресурсов.
В первую очередь я хочу изменить вывод, поступающий на физический монитор, то есть изменить значения гаммы, чтобы получить соответствующую яркость и желтый оттенок.
У меня есть что-то под названием gdi32.dll, которое занимается выводом на экраны, но я не могу найти выход, так как в Интернете все рядом с C++.
Кроме того, я даже не могу предоставить свой пробный код, так как я не очень хорошо знаком с кодированием типа C в Python.
Кроме того, то, что я хочу сделать, Intel Graphics Command Center уже делает это на моем рабочем столе. Если это можно сделать на программном уровне, то я знаю, что это возможно и программно.
Может ли кто-нибудь сказать, возможно ли это, о чем я думаю, и если да, то как я могу этого добиться?
Мне не нужен исходный код, мне просто нужен выход для этого.
Возможно, можно использовать GammaRamp из API Gdi32, но я не знаю, с чего начать.
Это тема, которая на самом деле спрашивала об этом, но я не получил здесь ответа, а новичкам запрещено комментировать, поэтому У меня не было другого выбора, кроме как опубликовать этот вопрос здесь.