Vista/7: возможна ли ложь DPI, но без масштабирования?
В Windows Vista и Windows 7 можно лгать приложениям о том, каковы текущие настройки DPI по горизонтали и вертикали.
Фон: "нормальный" параметр в Windows - 96 точек на дюйм. Большинство приложений не обрабатывают пользователя, имеющего предпочтение, отличное от предпочтения разработчика. Начиная с Windows Vista, Microsoft работала с ошибочными приложениями и решила лгать им - но масштабировать их графически.
Таким образом, в Windows уже есть механизм, чтобы лгать приложению о текущем значении DPI; всегда возвращает 96. Затем Windows использует видеокарту для масштабирования конечного составного окна до соответствующего размера.
У меня есть приложение, которое думает, что оно может обрабатывать режим с высоким разрешением, но на самом деле это не так. Поэтому я хочу, чтобы Windows лгала этому приложению. Но в то же время я пользуюсь приложением весь день, набирая скриншоты текста. Масштабирование, применяемое настольным композитором, оставляет текст более размытым и неприятным для чтения.
Можно ли лгать приложению о настройке DPI, но не применять масштабирование точек на дюйм?
Смотрите также
- Как заставить масштабирование с высоким разрешением? (мой вопрос об обратном случае; переопределение отказа приложения от масштабирования hi-dpi)
2 ответа
Я спросил Криса Джексона, парня из AppCompat. Он сказал:
У нас нет такой способности, масштабированный режим - это то, что мы должны решать в таких ситуациях. Да, есть некоторые вещи, которые неоптимальны в том, как мы это делаем (я тоже ненавижу пушистики), но трудно утвердить второе исправление, которое технически решает ту же проблему, поскольку это означает, что инженер не делает что-то еще для сделать мир лучше.
Итак, Крис, если вы когда-нибудь присоединитесь к SuperUser - вы можете получить кредит за свой ответ.
Запустите приложение на виртуальной машине. ОС виртуальной машины не обязательно должна иметь тот же параметр DPI, что и ОС хоста.