【发布时间】:2019-09-28 01:20:07
【问题描述】:
如何在 Windows 7 上检查另一个进程是否支持 dpi?我知道有IsProcessDPIAware(),但这仅适用于调用进程(我宁愿不走 dll 注入的路线)。
另一种选择是检查注册表中是否设置了HIGHDPIAWARE 标志,但我不知道这是否可靠,我认为它不是很快!?
还有其他更好的选择吗?
【问题讨论】:
-
documentation of IsProcessDPIAware 中确实有一个指向您的答案的链接。这是GetProcessDpiAwareness
-
我看到了那个链接,但正如我所说,我正在寻找 Windows 7 上的解决方案,
GetProcessDpiAwareness()可从 Windows 8.1 获得。 -
查询任何注册表值或任何其他静态数据肯定不可靠,因为 DPI 感知可以通过
SetProcessDPIAware()动态更改。 为什么您需要知道进程是否支持 DPI? -
因为我正在截取目标进程的窗口,并且它们的大小根据进程的 dpi 感知而不同。