gpt4 book ai didi

vb.net - 在 Visual Studio 2010 中获取最佳分辨率

转载 作者:行者123 更新时间:2023-12-02 06:17:26 26 4
gpt4 key购买 nike

有没有办法在VB中获得显示器的最佳分辨率?

最佳答案

基于建议的最佳分辨率

如果您想要 CRT 的最佳分辨率,那么您可以按照 Microsoft's advice (因为 CRT 没有 native 分辨率):

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 显示器的最佳分辨率,那么您必须使用其原始分辨率。通常它是显示器可用的最高分辨率。

获得最佳分辨率的方法

您可以从各种来源获取分辨率信息:

  1. Windows API(带有 User32.dll)
  2. DirectX(使用 SDK)
  3. Windows 管理规范(又名 WMI)

基于VB代码的最佳分辨率

我将使用一些WMI来查询分辨率信息。我们可以使用 Win32_VideoSettings 类,它通过视频 Controller 为我们提供可用的分辨率,但我用它得到了一些有趣/悲伤/空洞的结果。对于这一点,我使用 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 & "\root\cimv2:" & 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

注意:如果您想获取刷新率,可以通过 'RefreshRate' 属性获取(例如 vidSetting("RefreshRate") )

关于vb.net - 在 Visual Studio 2010 中获取最佳分辨率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7668275/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com