Net分析EDID

EDID(Extended Display Identification Data,扩展显示标识数据)主要提供以下数据:

  • 显示器基本信息:包括制造商名称、产品型号、序列号、生产周和年份等。
  • 显示器特性:如屏幕尺寸、宽高比、色彩特性等。
  • 信号支持情况:支持的视频输入信号类型,比如VGA、DVI、HDMI、DisplayPort等。
  • 分辨率和刷新率:支持的最大分辨率、推荐分辨率以及支持的刷新率等。
  • 时序参数:详细描述了显示器支持的各种分辨率和刷新率的时序参数,这些参数对于视频源正确配置输出信号至关重要。
  • 功能特性:如是否支持3D显示、是否具备音频输出能力等。
  • 数字视频接口标准:包括支持的接口标准版本,如HDMI 1.4、HDMI 2.0等。
  • 显示器的物理和电气特性:如显示器的物理尺寸、电源要求等。

EDID数据通常存储在显示器的DDC(Display Data Channel,显示数据通道)中,通过视频接口(如HDMI、DVI等)与视频源(如计算机显卡、电视盒等)进行通信,使视频源能够读取并根据这些信息自动调整输出设置,以最佳方式显示内容。

从注册表获取EDID数据

string registryKey = @"SYSTEM\CurrentControlSet\Enum\DISPLAY";
using (RegistryKey displayKey = Registry.LocalMachine.OpenSubKey(registryKey))
{
    if (displayKey != null)
    {
        foreach (string subKeyName in displayKey.GetSubKeyNames())
        {
            using (RegistryKey subKey = displayKey.OpenSubKey(subKeyName))
            {
                foreach (string monitorId in subKey.GetSubKeyNames())
                {
                    using (RegistryKey monitorKey = subKey.OpenSubKey(monitorId))
                    {
                        using (RegistryKey deviceParametersKey = monitorKey.OpenSubKey("Device Parameters"))
                        {
                            if (deviceParametersKey != null)
                            {
                                byte[] edid = (byte[])deviceParametersKey.GetValue("EDID");
                                if (edid != null)
                                {
                                    Debug.WriteLine($"Found EDID: {BitConverter.ToString(edid)}");
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}

 在线分析工具

http://www.edidreader.com/ ,例如

 EDID详解可参考:

 1.  https://www.cnblogs.com/fire909090/p/10523604.html

 2.  https://blog.csdn.net/qq_40569221/article/details/128384272

posted on 2024-12-05 11:15  TanZhiWei  阅读(14)  评论(0编辑  收藏  举报