我知道我可以使用 GetProcessDpiAwareness()
来检查特定进程的 dpi 感知。但是,这仅从 Windows 8.1 向上支持。有没有办法查询在此之前进程的 dpi 感知?
我找不到任何关于它的信息。
特别是我想知道该进程是否在 [x] Disable display scaling on high DPI settings
(至少在 Windows 7 中可用。
最佳答案
当您选中 Windows 7(和 8)上的“在高 DPI 设置上禁用显示缩放”复选框时,该设置为 stored in the registry ,通过创建一个 key ,该 key 的名称是 HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
下可执行文件的完全限定路径,其内容为:
HIGHDPIAWARE
启用显示缩放~ HIGHDPIAWARE
明确禁用显示缩放
因此您可以简单地查找该注册表项以查看是否为该进程启用或禁用了显示缩放。
关于c++ - Windows 8 之前的 GetProcessDpiAwareness(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52261598/