Есть ли какой-либо механизм в Windows, который позволил бы для всей системы инверсии цвета (то есть ночной режим)? - PullRequest
2 голосов
/ 03 января 2012

Одним из моих любимых приложений для Mac OSX является Nocturne от Blacktree, который инвертирует цвета всего экрана таким образом, что вы получаете черно-белый дисплей в масштабе всей системы, который легко просматривается в темной комнате. Пример.

Я посмотрел, и кажется, что в настоящее время нет способа сделать это для Windows.Ближе всего вы можете получить либо темные темы, которые большинство приложений игнорируют (и в любом случае не решают проблему - см. Мой комментарий к ответу Пола), либо такие приложения, как F.lux или Friendeye, которые просто понижают яркость и / илиизмените настройки цвета, но я не нашел ничего, что могло бы инвертировать цвета для всего экрана.

Итак, мой вопрос, возможно ли даже написать приложение, которое будет делать это в Windows?Есть ли у драйверов DWM, NVIDIA или любой другой части графической подсистемы какой-либо API, позволяющий вам управлять отображаемым изображением на таком базовом уровне?Где бы ты был?

Ответы [ 4 ]

2 голосов
/ 18 августа 2013

Вопросу больше года, но более подходящий ответ может быть http://arcanesanctum.net/negativescreen/.

Работает и в Windows 8, исходный код на C #.Это может сразу решить вашу проблему, или вы можете прочитать источник, чтобы расширить функциональность.

2 голосов
/ 04 января 2012

Это уже настройка в Windows, установите тему для High Contrast:

enter image description here

1 голос
/ 11 января 2012

Вы можете получить что-то похожее с лупой, встроенной в Windows7: запустите ее, нажмите кнопку «-», чтобы увеличить ее на 100% (следовательно, нет фактического увеличения!), А затем в диалоговом окне «Параметры» выберите «Флажок «Включить инверсию цвета».

Подробнее об этом можно узнать на WikiHow .

1 голос
/ 04 января 2012

Один способ, которым я могу думать:

  • внедрить DLL, которая перехватывает CreateProcess, чтобы внедрить себя в будущие процессы
  • перехватите EndPaint для вызова GetDIBits, инвертирования всего и SetDIBits

Внедрение DLL - довольно распространенная техника. Что касается перехвата, Microsoft Detours должен работать просто отлично.

Кроме того, вы можете расстроить антивирусы, поэтому распространение этого продукта на рынке, вероятно, не будет лучшей идеей.

...