问题标签 [edid]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
windows - 在 Windows XP/7 中获取 EDID 的 Win32 代码
我找到了这个页面,但无法从中获得任何有用的信息(它在注册表中搜索某些内容,但从未找到它并进入无限循环)。
正如这个关于获取监视器串行 UID(“EDID 信息”)的问题所问的那样,我想要相同的信息,但从 Win32 C 代码(或 C/C++ DDK代码或其他)而不是 Linux 的角度来看。
linux - Linux下获取屏幕厂商和序列号
我有一个实例,Gdk::Screen
它代表连接到我的计算机的显示器。如何读取该显示器的供应商 ID 和/或序列号?
从 XScreen 获取供应商 ID 和序列号也足够了。
读取监视器的 EDID 也足够了。
有任何想法吗?谢谢!
c++ - 如何获取显示器序列号?
有谁知道如何在 C 或 C++ 中获取连接的显示器序列号?我找到了一些代码,但它们是用我不明白的 vbs 编写的。我需要一些用 C 或 C++ 编写的示例代码。我知道序列号是从 EDID 读取的,但不幸的是我不知道如何 :( 有人可以帮我吗?
谢谢
更新:我也需要监视器类型,但这也可以从 EDID 以某种方式读取
c++ - 如何解析来自 EDID 的数字数据
我有一种方法可以使用 nVidia API 获取监视器的 EDID 信息,这给了我一个 128 个无符号字符的数组。但是,在阅读维基百科上的 edid 数据格式时,我注意到制造商 ID(字节 8-9)中的字母表示为 5 位数字,所以我不知道如何将其作为有意义的数据读入 C++ .
我的计划是定义一个与 edid 格式匹配的结构类型,并将我的 char 数组转换为该结构类型,但我不知道现在是否可行,因为我在 C++ 中知道的最小大小的数据类型是一个字节在尺寸方面。
谢谢。
账单。
windows - 寻找 Forms.Screen.DeviceName 到 Monitor EDID 信息的可靠映射
我正在开发一个应用程序,它将在相应监视器的对话框上显示从 EDID 块(监视器型号、ID、S/N 等)派生的信息。
此代码用于查找显示器的 EDID 信息。它通过枚举HKLM\SYSTEM\CurrentControlSet\Enum\DISPLAY\[Monitor]\[PnPID]\Device Parameters\EDID下的 DISPLAY 键来提取 EDID 信息。
更新:上面的代码依赖于 PnP 使用注册表的“副作用”。我现在使用SetupAPI来枚举监视器,它可以正确处理附加/删除的监视器(与上面链接中的代码不同。)
我正在尝试将 Windows.Forms.Screen.AllScreens[](\\.\DISPLAY1、\\.\DISPLAY2 等)中的每个屏幕与上述注册表检查返回的条目相关联。
注意:在下面的代码块中,DisplayDetails.GetMonitorDetails() 现在已被替换为使用 SetupAPI 的更强大的注册表枚举代码,但返回的数据是相同的。
例如
输出:
信息:型号:DELL P2411H,显示器 ID:DELA06E,PnPID:5&2e2fefea&0&UID1078018,序列号:F8NDP0C...PU
这是否与屏幕相关:\\.\DISPLAY1?
信息:型号:DELL P2411H,显示器 ID:DELA06E,PnPID:5&2e2fefea&0&UID1078019,序列号:F8NDP0C...AU
这是否与屏幕相关:\\.\DISPLAY2?
答案:没有
在测试中,我发现这些并不可靠相关(我有一个系统,其中枚举的第一个显示是 \\.\DISPLAY2)。
我的问题: 有没有办法可靠地获取给定 Forms.Screen 的 EDID 信息? 我可以获得 EDID 块,但没有找到将其与 UI 顶级表单相关联的路径。提示用户是不可取的,因为在我的用例中,两个(或更多)显示器可能是相同的型号和分辨率,并且仅在 S/N 中相差几个数字。
我已经在 Forms.Screen API、Win32 EnumDisplay、其他注册表 GUID(即插即用和驱动程序相关)之后寻找路径,但没有找到任何有希望的路径。
我还调查了 WMI Win32_DesktopMonitor API (Windows 7),但它似乎没有更多信息可以帮助我将其与 Windows.Forms.Screen.AllScreens[] 条目相关联。
我怀疑是否有办法做到这一点,它是通过 SetupAPI,但我还没有找到它。
c++ - 如何从 EDID 中读取显示器的型号?
在注册表中有一个(或多个)键,具体取决于您拥有多少个监视器 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\DISPLAY\DEL404C{Some Unique ID}\Device Parameters\EDID 这是一个 REG_BINARY 键。就我而言,这是:
我的问题是我如何才能使用 C 或 C++ 仅读取监视器模型(例如“SyncMaster”)而不是所有信息?
EDID 的格式在此处描述:http ://en.wikipedia.org/wiki/Extended_display_identification_data
edid - 偶尔返回错误字符时如何使用 EDID
伙计们,
环境:Ubuntu 12.04 最小版 + openbox。
在我们基于 C 的应用程序中,信息只能显示在经过批准的显示设备上。我们依靠 EDID 来获取连接的显示设备的信息。
一切都按预期工作。但是,有时 EDID 会返回一些乱码。例如,SAMSUNG
可能会作为SAMSyNG
.
获取 EDID 信息的编程逻辑很简单。这让我觉得EDID本身并不那么可靠。我想知道是否有其他人遇到过这样的问题,以及您以编程方式解决了这个问题。
提前感谢您分享您的想法。
问候,
彼得
c# - 直接从显示器读取 EDID 没有驱动程序
我得到了这个c#项目,我试图直接从监视器中提取edid 。目标是制作一个无需安装任何驱动程序即可在winpe上运行的应用程序。我知道可以通过注册数据库或wmi获取信息,但这在这个项目中是不可能的,因为如果没有安装驱动程序,它将无法提供正确的信息。我们得到了这个可以工作的附加代码,但我想它会询问驱动程序的分辨率,因为当我们尝试安装winpe时它不会工作。这是安装驱动程序时可以显示分辨率的代码..
linux - 使用 i2c 读取 Edid - “ioctl” 与 “read”
伙计们,
我正在研究阅读 edid 代码的各种实现。
在一种实现中,我看到以下内容:
在另一个实现中,我看到:
第一个实现来自http://www.polypux.org/projects/read-edid/,第二个来自 libXcm 实现。
我使用了第一个实现。我想知道第二种实现是否可以接受。
预先感谢您的帮助。
问候,
彼得
c# - 在 C# 中使用 AMD ADL 获取监视器 EDID
我正在使用 AMD ADL 来枚举和操作连接到我的系统的显示器。我需要的必要功能之一是能够读取和解析显示 EDID。我能够解析 EDID 的字节数组表示,但是我无法获取 EDID。根据 ADL 文档,我定义了 ADLDisplayEDIDData 结构并导入了 ADL_Display_EdidData_Get 函数。但是,我的代码的任何执行都会导致 retvalue -3 的错误。此 retvalue 表示无效参数。
EDIDData 结构:
DLL 导入:
我的声明有什么错误吗?有人对 ADL 和获取 EDID 信息有任何经验吗?
先感谢您。