如何获得显示器尺寸

4 ms-access vba

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

   X = fPixelsToTwips(GetSystemMetrics(SM_CXSCREEN), "X") '
   Y = GetSystemMetrics(SM_CYSCREEN)
Run Code Online (Sandbox Code Playgroud)

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

zed*_*xus 5

您可以访问 WMIWmiMonitorBasicDisplayParams以获取有关您的显示器的一些信息。我使用 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
Run Code Online (Sandbox Code Playgroud)

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