My main Windows machine is a Surface Pro 4. It has a high DPI display. High DPI aware applications such as Visual Studio appear beautiful with nice smooth fonts, and applications that aren't high DPI aware are (theoretically) scaled to 200% to appear at their normal size.
Scaling works fine for very old applications, however, some more recent software (such as MOTOTRBO CPS) lies to the OS and claims to be DPI aware, when in actual fact it is not.
MOTOTRBO CPS doesn't scale correctly on high resolution displays, such as 4K monitors. It starts OK, then eventually rescales itself to back 100%, with everything becoming tiny and unusable.
Here's how to fix it.
1. Set the following registry value on your machine.
Easiest way is to copy the lines below into a text file, save it with a .reg extension and double-click it.
Code:
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide]
"PreferExternalManifest"=dword:00000001
2. Create a new file called mototrbo.exe.manifest in your MOTOTRBO CPS directory, wherever mototrbocps.exe is located. Paste the following XML into that file.
Code:
<?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>