如何获得显示器尺寸

时间:2015-09-16 19:59:40

标签: vba ms-access access-vba

在我的项目中,我需要确定显示器/屏幕的大小。我可以使用以下代码获得屏幕分辨率

authors = Repo.all(Author)
# How would I create ["1": "Author #1", "2": "Author #2"]

这给了我正确的屏幕分辨率。但我有一个13.6"笔记本电脑屏幕和我的朋友有15.6"笔记本屏幕。两者都具有相同的屏幕分辨率1366 * 768。但屏幕尺寸不同。那么如何确定显示器的屏幕尺寸?这对我的项目非常重要。

1 个答案:

答案 0 :(得分:4)

您可以使用WMI的WmiMonitorBasicDisplayParams来获取有关显示的一些信息。我使用Windows 7成功地使用此代码显示了两个显示器的对角线长度。

Option Explicit

Sub Test()

    Dim WMIObject As Object
    Dim WMIResult As Object
    Dim WMIItem As Object

    Set WMIObject = GetObject("winmgmts:\\.\root\WMI")
    Set WMIResult = WMIObject.ExecQuery("Select * From WmiMonitorBasicDisplayParams")

    Dim Diagonal As Double
    Dim Width As Double
    Dim Height As Double
    Dim Counter As Integer
    Counter = 1

    For Each WMIItem In WMIResult

        Width = WMIItem.MaxHorizontalImageSize / 2.54
        Height = WMIItem.MaxVerticalImageSize / 2.54
        Diagonal = Sqr((Height ^ 2) + (Width ^ 2))

        MsgBox "Your monitor # " & Counter & " is approximiately " & Round(Diagonal, 2) & " inches diagonal"
        Counter = Counter + 1

    Next

End Sub

其他一些可能对您有帮助的参考资料。