Windows 8之前的GetProcessDpiAwareness()

Joh*_*ker 2 c++ winapi dpi windows-7 dpi-aware

我知道我可以GetProcessDpiAwareness()用来检查特定进程的dpi意识.但是,这仅从Windows 8.1向上支持.有没有办法在此之前查询进程的dpi意识?我找不到任何有关它的信息.

特别是我想知道该进程是否已运行[x] Disable display scaling on high DPI settings(至少可以从Windows 7获得).

mni*_*tic 5

当您检查Windows 7(和8)上的"禁用高DPI设置上的显示缩放"复选框时,该设置存储在注册表中,通过创建一个键,其名称是可执行文件的完全限定路径HKCU\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers和内容.这是:

  • HIGHDPIAWARE 启用显示缩放
  • ~ HIGHDPIAWARE 显式禁用显示缩放

因此,您只需查找该注册表项即可查看是否为该进程启用或禁用了显示缩放.