我使用 Windows 10,它具有一些高 DPI 屏幕和 200% 字体缩放。Microsoft Outlook 2016 在本地运行时几乎可以正常工作;它以正确的大小显示精美呈现的文本。(它经常启动时窗口小得无法使用,甚至不显示标题栏;它经常进入停止更新显示并且所有内容变为空白的状态;但这些烦恼不是本问答的主题。)
无论如何,我还远程桌面进入了机器。这是使用第三方远程桌面客户端,它似乎是 mstsc.exe 的某个变体,并且无需从网页选项即可启动,因此我无法在客户端中调整 DPI 设置。尽管如此,我确实获得了一个可用的桌面,跨越客户端上的高 DPI 显示器,没有任何全局像素缩放或模糊。客户端上的应用程序显示与本地桌面上的显示相同 - 只要您连接到现有会话。
问题出现在您注销或重新启动时,然后必须登录通过远程桌面,启动新的桌面会话。在这种情况下,dpi 设置不同,并且无法更改它们,因为“无法从远程会话更改显示设置”。有些人建议使用解决方法,即右键单击桌面并以此方式进入 dpi 设置,但这对我来说不起作用。
通过远程桌面登录时获得的新 dpi 设置并不那么糟糕。鼠标指针仍然大小合适。Firefox 渲染一切如旧。但现在许多程序都以低分辨率渲染,Windows 会将其放大 2 倍。两个例子是 Microsoft Outlook 和 PuTTy。它们可以工作,但与正常的高 dpi 平滑度相比,它们看起来丑陋且像素化。
对于 PuTTY,我可以通过右键单击快捷方式来解决问题。在“属性”下有一个“兼容性”选项卡,其中有一个“更改高 DPI 设置”按钮。我将第一部分“使用此设置...”设置为“在打开此程序时使用为我的主显示器设置的 DPI”。我设置了“缩放执行者:应用程序”。现在 PuTTY 可以正确渲染。
如果我能对 Outlook 做同样的事情就好了!但它没有“兼容性”选项卡。属性对话框在那里,但就是没有出现兼容性。无论是查看快捷方式的属性还是直接查看 outlook.exe 的属性,都会发生这种情况。(许多人想知道为什么这个选项卡出现在某些程序中,而其他程序中没有。有人说 64 位应用程序没有这个选项卡,但事实并非如此,因为我有一个 64 位版本的 PuTTY。它可以是一个策略设置,用于全局停止显示选项卡,但显然这里也不是这种情况。有人知道吗?)
无论如何,鉴于我无法进入“兼容性”选项卡,有没有办法设置 Outlook 以使用正确的 dpi 设置?
答案1
在注册表中
Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
有一个 PuTTY 条目,其值为
~ PERPROCESSSYSTEMDPIFORCEON HIGHDPIAWARE
我创建了一个新的字符串值,其名称是outlook.exe的完整路径:
C:\Program Files (x86)\Microsoft Office\Office16\OUTLOOK.EXE
我给它赋了上面的值。现在 Outlook 可以正常呈现了。(我还删除了用于启动 Outlook 的快捷方式,这是由 Office 安装程序创建的某种神奇快捷方式,并直接为上述可执行文件创建了一个新的快捷方式。我不知道是否需要这一步。)
我之前曾尝试编辑二进制数据Compatibility Assistant\Store
,但没有任何效果。