2012-01-03 5 views
2

Одним из моих любимых приложений Mac OSX является Blackctree's Nocturne, который инвертирует цвета всего экрана таким образом, что вы получаете черно-белый дисплей в масштабе всей сети, который легко на глаза в темной комнате. Example.Есть ли какой-нибудь механизм в Windows, который бы обеспечивал общесистемную инверсию цвета (т. Е. Ночной режим)?

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

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

+0

Приложения, игнорирующие системную цветовую схему, шрифты, локаль и т. Д., Разбиты и должны сообщаться авторам как таковым. – Deanna

ответ

2

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

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

+0

Это абсолютно идеально. Огромное спасибо! – ivanatpr

1

Один из способов я могу думать:

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

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

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

+0

Не все программы используют GDI для рисования ... –

+0

Это справедливая точка. :( –

2

Это уже установка в Windows, установить тему на High Contrast:

enter image description here

+0

Я уже упоминал темы в своем посте. Они не достигают намеченного эффекта, потому что даже когда приложения подчиняются им (что далеко * от универсального), все еще есть много мест, где темы просто не применяются Возьмите изображение, которое представляет собой просто белый прямоугольник. Ноктюрн преобразует это в черное, потому что ему все равно, что на экране, он просто инвертирует все цвета. Из-за таких вещей эти темы по-прежнему оставляют большие куски из пользовательского интерфейса, как черный на белом. Попробуйте, и вы увидите, что это на самом деле хуже, чем обычно, так как белые биты настолько ослепляют, когда они всплывают. – ivanatpr

+1

Bummer: -/Насколько я знаю, нет никакой возможности это тогда - вы можете посмотреть в Центре «Простота доступа», хотя, возможно, Лупа делает это –

1

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

Дополнительная информация об этом на WikiHow.

+0

Удивительно. Спасибо. – ivanatpr

 Смежные вопросы

  • Нет связанных вопросов^_^