加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

vb.net – 在Visual Studio 2010中获得最佳分辨率

发布时间:2020-12-17 07:14:46 所属栏目:百科 来源:网络整理
导读:有没有办法让显示器在vb中获得最佳分辨率? 解决方法 基于建议的最优分辨率 如果您想要CRT的最佳分辨率,那么您可以遵循Microsoft’s advice(因为CRT没有原生分辨率): For a CRT monitor,it’s important to change the screen resolution to the highest re
有没有办法让显示器在vb中获得最佳分辨率?

解决方法

基于建议的最优分辨率

如果您想要CRT的最佳分辨率,那么您可以遵循Microsoft’s advice(因为CRT没有原生分辨率):

For a CRT monitor,it’s important to change the screen resolution to
the highest resolution available that provides 32-bit color and at
least a 72-Hertz refresh rate.

如果您想要LCD显示器的最佳分辨率,则必须使用其原始分辨率.通常它是显示器可用的最高分辨率.

获得最佳分辨率的方法

您可以从各种来源获取解决方案信息:

> Windows API(带User32.dll)
> DirectX(使用SDK)
> Windows Management Instrumentation(a.k.a.WMI)

基于VB代码的最优分辨率

我将使用一些WMI来查询分辨率信息.我们可以使用Win32_VideoSettings类,它通过视频控制器为我们提供可用的分辨率,但我有一些有趣/悲伤/空的结果.对于这个,我直接使用CIM_VideoControllerResolution类来获得最大分辨率:

Imports System.Management
'...
    Public Function GetMaximumResolution() As ManagementObject

            Dim className As String = "CIM_VideoControllerResolution"
            Dim computerName As String = "."

            Dim managementPath As New ManagementPath("" & computerName & "rootcimv2:" & className)
            Dim scope As New ManagementScope(managementPath)

            Dim videoCtrlrRes As ManagementObjectCollection
            Using searcher As ManagementObjectSearcher = New ManagementObjectSearcher("select * from " & className)
                searcher.Scope = scope
                videoCtrlrRes = searcher.Get()
            End Using

            Dim videoCtrlrResList As New List(Of ManagementObject)

            For Each videoCtrlResItem In videoCtrlrRes
                'Console.WriteLine(videoCtrlResItem("Description"))
                videoCtrlrResList.Add(videoCtrlResItem)
            Next

            Dim maximumResolution As ManagementObject = videoCtrlrResList.
                OrderBy(Function(vidSetting) vidSetting("HorizontalResolution")).
                ThenBy(Function(vidSetting) vidSetting("VerticalResolution")).
                ThenBy(Function(vidSetting) vidSetting("NumberOfColors")).
                LastOrDefault()
            'Console.WriteLine(maximumResolution("Description"))

            Return maximumResolution
        End Function

注意:如果您想获得resfresh率,可以使用’RefreshRate’属性(例如vidSetting(“RefreshRate”))获取它

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读