vb.net – 在Visual Studio 2010中获得最佳分辨率
有没有办法让显示器在vb中获得最佳分辨率?
解决方法
基于建议的最优分辨率
如果您想要CRT的最佳分辨率,那么您可以遵循Microsoft’s advice(因为CRT没有原生分辨率):
如果您想要LCD显示器的最佳分辨率,则必须使用其原始分辨率.通常它是显示器可用的最高分辨率. 获得最佳分辨率的方法 您可以从各种来源获取解决方案信息: > Windows API(带User32.dll) 基于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”))获取它 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |