链接:https://www.zhihu.com/question/40658050/answer/132382971
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
大家好哈,这个问题是可以解决的。其实不限于arcmap,任何软件都可以。这个方法只有一个不足,就是改变之后软件画面会变得比之前模糊一些,对于photoshop系列图片处理软件的使用者可能会造成一些困扰,但是对我们使用arcmap的GISer们来说其实影响并不大(个人体验)。它的优点是改变之后整个软件体验和视觉效果和普清屏上完全一致,会舒服很多。(如果不改变的话,即使在arcmap里面设置了大图标,很多显示元素仍然会显得非常难看。)
这个方法其实挺简单,问题的原因是windows在启动软件的时候会检查此软件是否知道它正在高分屏上运行,一般软件默认都会回答‘是’,那么结果就是会出现字体或者图标很小的情况。我们的解决方法就是让软件告诉windows,它不知道它正在高分屏上运行,让他仍然按照一般分辨率(大多是1920 1080了)显示。具体方法是在注册表中让windows在打开软件的时候先在软件目录里寻找用户自定义的manifest文件,然后新建一个manifest文件放到arcmap根目录,这样arcmap打开的时候就会优先按照新建的manifest文件中的参数显示了。
第一步:注册表
1. 找到注册表中的:
HKEY_LOCAL_MACHINE > SOFTWARE > Microsoft > Windows > CurrentVersion > SideBySide
2. 右键--New--DWORD(32bit) Value
3. 键入:PreferExternalManifest,回车(优先适用外部manifest文件)。
4. 双击新建的注册表值,在Value Data对话框中键入 1, 在右边的Base选项中选择 Decimal。OK结束编辑。
<img src="https://pic4.zhimg.com/50/v2-830a643dc49772d850338466dd672887_hd.png" data-rawwidth="2154" data-rawheight="1288" class="origin_image zh-lightbox-thumb" width="2154" data-original="https://pic4.zhimg.com/v2-830a643dc49772d850338466dd672887_r.png">
第二步:新建manifest文件并放入arcmap根目录
1. 新建一个.txt文件,在其中粘贴下列代码。
2. 结束编辑,将文件名改为‘ArcMap.exe.manifest’。(注意:须对整个文件名进行修改,修改后从.txt文件改为了.manifest文件。如果看到修改完后仍然是文本文件,可能是因为你的文件夹显示设定了不显示文件后缀,导致你无法修改.txt部分。方法是进入文件夹选项,win10是在view选项卡,靠右边show/hide栏中在第二个‘File name extensions’打钩,就可以看到.txt后缀了,这样将整个文件名删除替换成ArcMap.exe.manifest即可)
3. 将编辑过的.manifest文件放入ArcMap.exe文件根目录,如果不知道在哪的话就找到你的arcmap快捷方式,右键选择open file location,会看到arcmap快捷方式,然后再右键open file location,就会被引导到ArcMap.exe所在文件夹了。
<img src="https://pic4.zhimg.com/50/v2-29a9b3b527db62c772849d98df1f2adb_hd.png" data-rawwidth="2282" data-rawheight="1222" class="origin_image zh-lightbox-thumb" width="2282" data-original="https://pic4.zhimg.com/v2-29a9b3b527db62c772849d98df1f2adb_r.png">
**********大功告成!打开arcmap,你就会看到熟悉的界面结构了。enjoy!
P.S.如果你在这之前尝试过打开arcmap的大图标,现在你得把它关掉了,不然会看到超大的马赛克图标 ;)
P.P.S. 之前说过,这个方法适用于任何软件,你只要将.manifest的文件名中的ArcMap改成那个软件执行文件的名称,放到根目录下(跟执行文件放在一起)就好啦。
Reference:
【1】Adobe App Scaling on High DPI Displays (FIX)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0" xmlns:asmv3="urn:schemas-microsoft-com:asm.v3"> <dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.Windows.Common-Controls"
version="6.0.0.0" processorArchitecture="*"
publicKeyToken="6595b64144ccf1df"
language="*">
</assemblyIdentity>
</dependentAssembly>
</dependency> <dependency>
<dependentAssembly>
<assemblyIdentity
type="win32"
name="Microsoft.VC90.CRT"
version="9.0.21022.8"
processorArchitecture="amd64"
publicKeyToken="1fc8b3b9a1e18e3b">
</assemblyIdentity>
</dependentAssembly>
</dependency> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3">
<security>
<requestedPrivileges>
<requestedExecutionLevel
level="asInvoker"
uiAccess="false"/>
</requestedPrivileges>
</security>
</trustInfo> <asmv3:application>
<asmv3:windowsSettings xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">
<ms_windowsSettings:dpiAware xmlns:ms_windowsSettings="http://schemas.microsoft.com/SMI/2005/WindowsSettings">false</ms_windowsSettings:dpiAware>
</asmv3:windowsSettings>
</asmv3:application> </assembly>