我在一家小型非政府组织工作,我们有一个定制的应用程序,用于显示数据表。在配备两个 FHD 显示器(3840x1080 分辨率)的 Windows 10 系统上,该应用程序运行完美。该应用程序在一个屏幕上最大化,我们可以拥有包含许多列的表格,并且该应用程序提供水平滚动,其大小是窗口的两倍(=3840 像素)。但是,单个 FHD 显示器系统(1920x1080 分辨率)上的同一应用程序不提供水平滚动,而是调整列的大小,使其变得不可读。供应商支持尚未提供,所以我想知道我是否可以欺骗单显示器系统上的应用程序,使其表现得像双显示器系统一样。
我在 Google 上搜索了一下,发现了获取系统指标具体来说SM_CXVIRTUALSCREEN。我想知道我是否可以加载一个 dll 来将应用程序的水平分辨率设置为 3840?有人做过这样的事情吗?有人知道设置每个应用程序分辨率的工具吗?
答案1
如果您想在流程中覆盖 GetSystemMetrics API,这里有一个免费产品: 覆盖。
根据描述:
- 你可以在目标进程中钩住函数,而不仅仅是 API
- 您可以轻松覆盖任何 API 或任何流程内部函数
(我没有使用过该产品,因此无法提供详细信息。)
答案2
我最终使用十六进制编辑器并在应用程序中对分辨率进行硬编码,但 harrymc 的建议可能是以不太黑客的方式执行此操作的最佳方法。