【发布时间】:2013-09-04 13:27:55
【问题描述】:
我有一个看似相对简单的问题,至少我希望如此。我想知道是否可以在LabVIEW中找到显示器的dpi。如果可能的话,我将如何去做。
【问题讨论】:
我有一个看似相对简单的问题,至少我希望如此。我想知道是否可以在LabVIEW中找到显示器的dpi。如果可能的话,我将如何去做。
【问题讨论】:
您可以使用 .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:
为“从字符串扫描”添加一个额外的输出参数。这两个输出是硬件报告的物理屏幕尺寸(以厘米为单位)。
您可以使用另一个匹配模式/扫描从该程序中获得分辨率,但使用系统属性节点更容易!
注意:Display:Primary Workspace 的属性小于完整显示高度,它减去了 Windows 任务栏高度。您需要通过 Disp.AllMonitors 属性来获取正确的值。
这是检索主显示器分辨率并计算 dpi 的完整框图。您必须对这些值进行四舍五入 - 它们将是 94.07 或 142.7 之类的数字。
【讨论】: