代码之家  ›  专栏  ›  技术社区  ›  user1750948

如何在labview中查找显示器的dpi

  •  1
  • user1750948  · 技术社区  · 11 年前

    我有一个似乎相对简单的问题,至少我希望是这样。我想知道是否有可能在labVIEW中找到显示器的dpi。如果可能的话,我该怎么做呢。

    3 回复  |  直到 11 年前
        1
  •  4
  •   Phil Brooks    11 年前
        2
  •  1
  •   Austin    11 年前

    我不确定密度或dpi,因为这是基于显示器的分辨率和物理尺寸,但只需获得显示器的分辨率很容易。

    在方框图中:

    1. 右键单击以打开调色板->应用程序控制->VI服务器参考

    2. 左键单击引用并更改为“此应用程序”

    3. 右键单击以打开调色板->应用程序控制->属性节点

    4. 将应用程序节点连接到属性节点

    5. 左键单击属性节点->显示->主要工作区

    6. 其输出是主监视器的尺寸减去底部Windows工具栏的高度

    enter image description here

        3
  •  1
  •   Erik Olson    11 年前

    LabView似乎不支持直接获取dpi或物理尺寸,但您可以从命令行间接获取。或者,您可以编写一个实现GetDisplayDpi的外部DLL。

    在Windows上,以下是如何在命令行上获取物理尺寸:

    使用 dumpedid.exe 要获取有关监视器的信息,请执行以下操作:

    要在LabView中获得物理监视器的大小,您需要使用以下功能块构建vi:

    1. 运行dumppedid.exe的系统执行程序
    2. 将图案与字符串“图像大小.*”匹配
    3. 从字符串扫描,格式为字符串“图像大小:%f X%f”

    向“从字符串扫描”添加一个额外的输出参数。两个输出是硬件报告的物理屏幕尺寸(以厘米为单位)

    enter image description here

    你可以通过另一个匹配模式/扫描从这个程序中获得分辨率,但使用系统属性节点更容易!

    注意:Display:Primary Workspace的属性小于完整的显示高度,它减去了Windows任务栏的高度。您需要通过Disp.AllMonitors属性来获得正确的值。

    这是一个完整的框图,用于检索主监视器分辨率并计算dpi。您必须将这些值四舍五入,它们将是94.07或142.7之类的数字。

    enter image description here