-2

我有 C++ 应用程序,可以在 Windows 10 上打开其他应用程序CreateProcessA。这些应用程序可能有不同的 DPI 感知设置。

所以问题是 - 我可以创建将 DPI Awareness 设置为的流程DPI_AWARENESS_CONTEXT_UNAWARE吗?

如果不是 - 那么也许我可以DPI_AWARENESS_CONTEXT_UNAWARE为已经创建的进程设置?

UPD: 我的应用程序生成应用程序,然后更改一个位置。如果它看起来是另一台具有不同 DPI 的显示器,则会提供缩放值。

如果应用程序支持 DPI,则在移动完成后,尺寸会根据 WM_DPICHANGED 消息值更改。衍生的应用程序可能具有不同的 DPI 感知模式。所以想法是为它们设置一种模式,并以相同的逻辑控制所有它们的位置和尺寸。

4

1 回答 1

0

如果应用还没有清单,您可以使用SetProcessDpiAwarenessContext来设置感知。还要检查这个

除非使用CreateRemoteThread注入远程线程,否则您无法在现有应用程序上设置感知,在这种情况下,当强制执行应用程序不知道的某些事情时,您可能会导致不兼容。

于 2019-01-30T21:30:30.290 回答