我想使用 Windows 中的注册表手动更改某些程序的兼容性设置。(对于某些程序(如 Microsoft Office),可执行文件的属性窗口中不存在“兼容性”选项卡。)
兼容性设置存储在和REG_SZ
下的以可执行文件路径作为键名称的类型的注册表项中。Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
Computer\HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
然而,在某些情况下,虽然处理相同的兼容性设置,但字符串的值略有不同:
示例 1:截屏
键 =C:\Program Files\7-Zip\7zFM.exe
值 =^ HIGHDPIAWARE
这是通过以下方式得到的字符串:解决兼容性>程序打开但无法正确显示>选择大尺寸字体设置时程序无法正确显示。
示例 2:截屏
键 =C:\Program Files\7-Zip\7zFM.exe
值 =~^ HIGHDPIAWARE
这是您完成示例一并打开文件属性后的结果 >兼容性>更改高 DPI 设置。覆盖高 DPI 缩放行为。缩放由以下方式执行:已被选定并设置为应用。 按好的和申请。
示例 3:截屏
键 =C:\Program Files\7-Zip\7zFM.exe
值 =~ HIGHDPIAWARE
这是打开文件属性时的结果 >兼容性>更改高 DPI 设置和覆盖高 DPI 缩放行为。缩放由以下方式执行:是不是尚未选择。勾选复选框并选择应用, 按好的和申请。
这三个版本似乎都有效,并且效果相同。此外,我还可以简单地省略开头的特殊字符,设置看起来仍然有效。
我想了解为什么注册表项的值不同,但它们似乎具有相同的效果?字符串开头的波浪符号或脱字符的用途或含义是什么?它是否有任何隐藏的效果,乍一看并不明显?