Как получить размер монитора

В моем проекте мне нужно определить размер монитора / экрана. Я могу получить разрешение экрана, используя следующий код

   X = fPixelsToTwips(GetSystemMetrics(SM_CXSCREEN), "X") '
   Y = GetSystemMetrics(SM_CYSCREEN)

Это дает мне правильное разрешение экрана. Но у меня 13,6"экран ноутбука, а у моего друга 15,6" экран ноутбука. Оба имеют одинаковое разрешение экрана 1366*768. Но размер экрана другой. Так как же определить размер экрана монитора? Это очень важно для моего проекта.

1 ответ

Решение

Вы можете подключиться к 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

Некоторые другие ссылки, которые могут вам помочь.

Другие вопросы по тегам