【问题标题】:List of valid resolutions for a given Screen?给定屏幕的有效分辨率列表?
【发布时间】:2015-01-27 23:29:08
【问题描述】:

有没有办法获得给定屏幕的所有有效分辨率?

我目前有一个包含所有有效屏​​幕的下拉菜单(使用 Screen.AllScreens)。当用户选择一个屏幕时,我想向他们展示第二个下拉列表,列出该显示器的所有有效分辨率(只是当前分辨率)。

【问题讨论】:

    标签: c# resolution


    【解决方案1】:

    我认为应该可以使用Windows Management Instrumentation (WMI) 获取信息。 WMI 可以从 .NET 中使用 System.Management 命名空间中的类进行访问。

    解决方案类似于以下内容。我不太了解 WMI,无法立即找到您要查找的信息,但我找到了适用于显卡支持的分辨率的 WMI 类。该代码需要引用 System.Management.dll 并导入 System.Management 命名空间。

    var scope = new ManagementScope();
    
    var query = new ObjectQuery("SELECT * FROM CIM_VideoControllerResolution");
    
    using (var searcher = new ManagementObjectSearcher(scope, query))
    {
        var results = searcher.Get();
    
        foreach (var result in results)
        {
            Console.WriteLine(
                "caption={0}, description={1} resolution={2}x{3} " +
                "colors={4} refresh rate={5}|{6}|{7} scan mode={8}",
                result["Caption"], result["Description"],
                result["HorizontalResolution"],
                result["VerticalResolution"],
                result["NumberOfColors"],
                result["MinRefreshRate"],
                result["RefreshRate"],
                result["MaxRefreshRate"],
                result["ScanMode"]);
        }
    }
    

    【讨论】:

    • 感谢丹尼尔的回复。我已经为此苦苦挣扎了一段时间。根据您的上述答案,我看不出它与单个屏幕有何关系。使用我的双显示器设置,我的视频卡可能支持高达 1900x1200,但我连接的显示器最大支持 1280x1024。我看不到如何查询单个显示器的分辨率...
    • 您将不得不搜索可用的 WMI 类...我非常确信有一个类可以提供您正在寻找的信息。转到msdn.microsoft.com/en-us/library/aa394554(VS.85).aspx 并搜索课程。
    • @DanielBrückner:我怎样才能让这段代码在 Windows 8 上工作?
    【解决方案2】:

    以下链接包含详细的代码示例:

    任务 2:更改显示分辨率
    http://msdn.microsoft.com/en-us/library/aa719104(VS.71).aspx#docum_topic2

    【讨论】:

      【解决方案3】:

      接受的答案似乎不适用于 Windows 8.1,至少在我的机器上是这样。查询运行良好,但结果中有 0 个条目。考虑到 Bijoy K Jose 的评论,我想我不是唯一一个。

      但是,以下问题的经过验证的答案效果很好: How to list available video modes using C#?

      感谢 Vimvq1987

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2016-06-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多