我如何检测 "one scaling level for all displays"?
How do I detect "one scaling level for all displays"?
Windows 8.1 引入了这个荒谬的 bug 功能,它会自动决定用户在每个屏幕上的 DPI 缩放比例。我正在指示用户通过单击 "Let me choose one scaling level for all displays" 的控制面板中的复选框来关闭此功能。这个 1:22 分钟的视频显示了设置的位置:
https://www.youtube.com/watch?v=sE3IUTPy1WA
无论如何,我的问题是,如何以编程方式确定此设置是打开还是关闭?是否有我可以进行的 Win API 调用,或者我可以查询的注册表设置?如果关闭此设置,我希望能够在我的应用程序中检测到它。
可以查询HKCU\Control Panel\Desktop\Win8DpiScaling
此密钥和其他相关密钥记录在 DPI-related APIs and registry settings 但相关文本如下:
The Control Panel\ Appearance and Personalization\Display user
interface (UI) includes a checkbox: Let me choose one scaling level
for all my displays, which controls whether the system applies a
single scale factor to all displays (as in Windows® 8 and earlier
versions of Windows), or different scale factors that take into
account the pixel density of each display (the Windows 8.1 default).
This checkbox configures the HKCU\Control Panel\Desktop\Win8DpiScaling
registry key in Windows 8.1.
Key value : 0 Meaning : Different scale factors for each display: Windows 8.1 default.Content that is moved from one display to another will be the right size, but can be bitmap-scaled.
Key value : 1 Meaning : Same scale factor is applied to all displays: Windows 8 and earlier Windows versions behavior.Content that is moved from one display to another might be the wrong size
Windows 8.1 引入了这个荒谬的 bug 功能,它会自动决定用户在每个屏幕上的 DPI 缩放比例。我正在指示用户通过单击 "Let me choose one scaling level for all displays" 的控制面板中的复选框来关闭此功能。这个 1:22 分钟的视频显示了设置的位置:
https://www.youtube.com/watch?v=sE3IUTPy1WA
无论如何,我的问题是,如何以编程方式确定此设置是打开还是关闭?是否有我可以进行的 Win API 调用,或者我可以查询的注册表设置?如果关闭此设置,我希望能够在我的应用程序中检测到它。
可以查询HKCU\Control Panel\Desktop\Win8DpiScaling
此密钥和其他相关密钥记录在 DPI-related APIs and registry settings 但相关文本如下:
The Control Panel\ Appearance and Personalization\Display user interface (UI) includes a checkbox: Let me choose one scaling level for all my displays, which controls whether the system applies a single scale factor to all displays (as in Windows® 8 and earlier versions of Windows), or different scale factors that take into account the pixel density of each display (the Windows 8.1 default).
This checkbox configures the HKCU\Control Panel\Desktop\Win8DpiScaling registry key in Windows 8.1.
Key value : 0 Meaning : Different scale factors for each display: Windows 8.1 default.Content that is moved from one display to another will be the right size, but can be bitmap-scaled.
Key value : 1 Meaning : Same scale factor is applied to all displays: Windows 8 and earlier Windows versions behavior.Content that is moved from one display to another might be the wrong size