我有一个似乎相对简单的问题,至少我希望是这样。我想知道是否可以在LabVIEW中找到显示器的dpi。如果可能的话,我将如何去做。
3 回答
您可以使用 .NET 来检索 DPI 设置...
http://blogs.msdn.com/b/acoat/archive/2008/11/17/finding-the-windows-dpi-setting-in-net.aspx
我不确定密度或 dpi,因为这是基于分辨率和显示器的物理尺寸,但很容易获得显示器的分辨率。
在框图中:
右击调出选板->应用程序控制->VI服务器参考
左键单击引用并更改为此应用程序
右击调出调色板 -> 应用程序控制 -> 属性节点
将应用程序节点连接到属性节点
左键单击属性节点 -> 显示 -> 主工作区
其输出是主显示器的尺寸减去底部 Windows 工具栏的高度
LabView 似乎不支持直接获取 dpi 或物理尺寸,但您可以从命令行间接获取。或者,您可以编写实现 GetDisplayDpi 的外部 DLL。
在 Windows 上,以下是如何在命令行上获取物理尺寸:
使用dumpedid.exe获取有关监视器的信息:
要在 LabView 中获得物理监视器的大小,您可以使用以下功能块构建 vi:
- 系统 Exec 运行 dumpedid.exe
- 匹配模式与字符串“图像大小。*”
- 使用格式字符串“图像大小:%f X %f”从字符串扫描
向 Scan From String 添加一个额外的输出参数。这两个输出是硬件报告的物理屏幕尺寸(以厘米为单位)。
您可以使用另一个匹配模式/扫描从该程序中获得分辨率,但使用系统属性节点更容易!
注意:Display:Primary Workspace 的属性小于完整显示高度,它减去了 Windows 任务栏高度。您将需要通过 Disp.AllMonitors 属性来获取正确的值。
这是检索主显示器分辨率并计算 dpi 的完整框图。您必须对这些值进行四舍五入 - 它们将是 94.07 或 142.7 之类的数字。