I think it should provide the physical resolution and the scale factor instead of the (virtual) resolution, the virtual resolution will be affected by the PROCESS_DPI_AWARENESS .
The physical resolution can be got by EnumDisplaySettingsfunction with ENUM_CURRENT_SETTINGS just like the one used in available_display_configurations().
DPI
All the DPI retrieved by GetDeviceCaps(hdc, LOGPIXELSX) in infoware for multiple displays is the system (primay display virtual) DPI, not per display.
< Windows 8.1 : GetDeviceCaps(hdc, LOGPIXELSX), system DPI
>= Windows 8.1 : GetDpiForMonitor(,MDT_EFFECTIVE_DPI,,) with SetProcessDpiAwareness(PROCESS_PER_MONITOR_DPI_AWARE), per monitor DPI, but may affect the UI of the process
>= Windows 10, version 1607 : GetDpiForMonitor(,MDT_EFFECTIVE_DPI,,) with SetThreadDpiAwarenessContext(DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2) in a thread, per monitor DPI
More information
more information required, such as scale factor, position , primary, orientation.
The resolution currently detected are virtual ones after scaling and the DPI seems to be wrong, like:
The infoware output:
Resolution
I think it should provide the physical resolution and the scale factor instead of the (virtual) resolution, the virtual resolution will be affected by the PROCESS_DPI_AWARENESS .
The physical resolution can be got by
EnumDisplaySettings
function withENUM_CURRENT_SETTINGS
just like the one used inavailable_display_configurations()
.DPI
All the DPI retrieved by
GetDeviceCaps(hdc, LOGPIXELSX)
in infoware for multiple displays is the system (primay display virtual) DPI, not per display.< Windows 8.1
:GetDeviceCaps(hdc, LOGPIXELSX)
, system DPI>= Windows 8.1
:GetDpiForMonitor(,MDT_EFFECTIVE_DPI,,)
withSetProcessDpiAwareness(PROCESS_PER_MONITOR_DPI_AWARE)
, per monitor DPI, but may affect the UI of the process>= Windows 10, version 1607
:GetDpiForMonitor(,MDT_EFFECTIVE_DPI,,)
withSetThreadDpiAwarenessContext(DPI_AWARENESS_CONTEXT_PER_MONITOR_AWARE_V2)
in a thread, per monitor DPIMore information
more information required, such as
scale factor
,position
,primary
,orientation
.