Я знаю, что я могу использовать GetProcessDpiAwareness()
чтобы проверить dpi осведомленность о конкретном процессе. Однако это поддерживается только в Windows 8.1 и выше. Есть ли способ запросить осведомленность о процессе до этого?
Я не мог найти информацию об этом.
Особенно я хочу знать, был ли запущен процесс с [x] Disable display scaling on high DPI settings
(который был доступен по крайней мере из Windows 7.
При установке флажка «Отключить масштабирование экрана при настройках с высоким DPI» в Windows 7 (и 8) этот параметр хранится в реестре, путем создания ключа, имя которого является полным путем к исполняемому файлу HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
и содержание которого:
HIGHDPIAWARE
включить масштабирование экрана~ HIGHDPIAWARE
явно отключить масштабирование дисплеяТаким образом, вы можете просто найти этот раздел реестра, чтобы увидеть, включено ли масштабирование экрана для процесса.
Других решений пока нет …