Windows 10上的SoapUI - 高DPI/4K缩放问题

37

SoapUI似乎不支持高DPI屏幕,导致显示过小(文本和按钮都很小)。其他应用程序在3840 x 2160的高分辨率下运行正常。

toosmall

版本: SoapUI 5.1.2
操作系统: Windows 10

我尝试过:

  • 将SoapUI配置为“禁用高DPI缩放” - 某些部分看起来更大,而且无法正常显示(图像)
  • 更改分辨率
  • 更改字体大小(首选项>编辑器设置>选择字体...)


因此,我认为SoapUI虚假地声称自己支持高DPI,实际上并没有真正进行自我缩放。有人遇到同样的问题吗?

7个回答

74

4
这不需要修改注册表,也适用于非管理员用户。并且在当前的Windows 10版本中也受支持。+1 - skolima
这是我在我的Surfacebook Pro上成功的方法,尽管它要求管理员权限,但我不确定是否只是我的网络。 - Steve
1
此选项现已移至子菜单中,但仍适用相同的设置。 - muttonUp

42

这是一个临时解决方案,直到开发人员推出DPI-Aware版本。

步骤1:添加一个注册表键HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide\PreferExternalManifest (DWORD) 值为 1。

步骤2:在与 'SoapUI-5.2.1.exe' 相同的目录中添加一个清单文件“SoapUI-5.2.1.exe.manifest”

清单文件内容:

<?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">
    <description>eclipse</description>
    <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
        <security>
            <requestedPrivileges>
                <requestedExecutionLevel xmlns:ms_asmv3="urn:schemas-microsoft-com:asm.v3"
                    level="asInvoker" ms_asmv3:uiAccess="false">
                </requestedExecutionLevel>
            </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>


正确的 DPI 缩放: corect


您IP地址为143.198.54.68,由于运营成本限制,当前对于免费用户的使用频率限制为每个IP每72小时10次对话,如需解除限制,请点击左下角设置图标按钮(手机用户先点击左上角菜单按钮)。 - Tulio C
2
我遇到了和Tulio C. 同样的问题。 SoapUI可执行文件在bin目录下! - Shmarkus
2
reg add HKLM\Software\Microsoft\Windows\CurrentVersion\SideBySide /v PreferExternalManifest /d 1 /t REG_DWORD - Software Engineer
2
显然,您必须更改清单文件名称以反映SoapUI版本号,否则它将无法工作。 - niico
如上所述,我不得不使用适用于我安装版本的SoapUI-5.3.0.exe.manifest文件。然后它就正常工作了。 - Paul George
显示剩余4条评论

8

我按照以下步骤操作,重新启动SoapUI后它可以正常工作:

属性 -> 兼容性 -> 更改高DPI设置 -> 覆盖高... -> 系统

在此输入图片描述


4
您也可以使用此命令来创建注册表键:
reg add HKLM\Software\Microsoft\Windows\CurrentVersion\SideBySide /v PreferExternalManifest /d 1 /t REG_DWORD

源代码


1

[2020年7月更新]:此解决方法仅适用于SOAP UI 5.5(及更低版本)。 SOAP UI 5.6(及更高版本)包含Java 12,因此它现在原生支持HiDPI(无需像素化字体呈现)。

Java从9版本开始支持Hi DPI。

  1. 下载并安装Java 9或更高版本

  2. 编辑“C:\Program Files\SoapUI\bin\soapui.bat”并在开头添加以下行:

    set JAVA_HOME="C:\Program Files\Java\jre-9"

  3. 在文件“C:\Program Files\SoapUI\bin\soapui.bat”中,在该行的开头添加选项“--permit-illegal-access”:

    set JAVA_OPTS= --permit-illegal-access -Xms128m -Xmx1024m

  4. 将C:\Program Files\SoapUI\jre重命名为C:\Program Files\SoapUI\jre.disabled

  5. 启动“soapui.bat”

提示:在“编辑器设置”中使用固定大小字体“Consolas”

注意:已在Windows 10“创作者更新”(版本号为1703)上进行测试。

Screenshot of SOAP-UI in Hi DPI


我收到了“JAVA_HOME未设置,可能会出现意外结果”...然后应用程序退出。 - The Student
请检查您在第二步指定的JAVA_HOME是否为您系统上Java 9的正确路径。 - metatechbe
使用5.7.0版本,但在Win 11上仍然存在相同的问题。 - curiousBoy

1

和Rudi的答案一样,但是UI有点不同。(我想把这个加到评论里,但我需要更多的声望。)

这对我来说甚至在双显示器上也可以使用,一个高DPI和一个普通DPI。

我使用了System(增强版),但是System和System(增强版)都可以工作。

更改高DPI设置的不同Windows 10 UI


1
这将解决Windows 10高分辨率屏幕3840 X 2160上SOAPUI的问题。
  1. 进入SOAP UI的安装目录 C:\Program Files\SmartBear\SoapUI-5.4.0\bin

  2. 右键单击SoapUI-5.4.0.exe并点击兼容性选项卡

  3. 在复选框中打勾:覆盖高DPI缩放行为。缩放执行者:

  4. 从下拉菜单中选择“系统”

  5. 点击应用。

SOAP UI兼容模式截图:
SOAP UI兼容模式截图


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接