Я хочу запросить настройку масштабирования экрана Windows
программно: В этом случае я хочу, чтобы он возвратил 125
, поскольку я настроил свой дисплей на масштабирование 125%
.Согласно этой статье можно использовать следующий код Windows API C++
:
// Get desktop dc
desktopDc = GetDC(NULL);
// Get native resolution
horizontalDPI = GetDeviceCaps(desktopDc,LOGPIXELSX);
verticalDPI = GetDeviceCaps(desktopDc,LOGPIXELSY);
Однако этот код всегда возвращает 96
и 96
как для горизонтального, так и для вертикальногоDPI
, что переводится как 100%
масштабирование (согласно предоставленной таблице):
Этот вывод неверен, поскольку я все еще получаю тот же результат с 125%
масштабированием.Как это можно сделать?Я программирую на Java
, поэтому я могу выполнить C++
, используя JNA
.Решения Windows API
предпочтительнее, но все остальное, например сценарий .bat
или запрос registry
, также подойдет, если оно надежно для всех версий Windows
от 7
до 10
.