0
모니터에서 직접 edid을 추출하려고 시도하는이프로젝트가 있습니다. 목표는 어떤 드라이버도 설치하지 않고 winpe에서 실행할 수있는 응용 프로그램을 만드는 것입니다. 등록 데이터베이스 또는 wmi으로 정보를 가져 오는 것이 가능하다는 것을 알고 있지만 드라이버가 설치되지 않은 상태에서 정확한 정보를 제공하지 않기 때문에이 프로젝트에서는 불가능합니다. 우리는 작동하는이 부착 된 코드를 가지고 있지만, 우리가 winpe 설치를 시도 할 때 작동하지 않기 때문에 드라이버에 해상도를 묻는 것 같아요. 여기모니터에서 직접 EDID 읽기 NO 드라이버
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool EnumDisplaySettings([MarshalAs(UnmanagedType.LPStr)] string lpszDeviceName, int iModeNum, out Program.DEVMODE lpDevMode);
public static List<Tuple<int, int>> GetScreenResolutions()
{
List<Tuple<int, int>> list = new List<Tuple<int, int>>();
try
{
int num = 0;
Program.DEVMODE dEVMODE;
while (Program.EnumDisplaySettings(null, num++, out dEVMODE))
{
Tuple<int, int> item = Tuple.Create<int, int>(dEVMODE.dmPelsWidth, dEVMODE.dmPelsHeight);
if (!list.Contains(item))
{
list.Add(item);
}
}
}
catch
{
Console.WriteLine("Could not get screen resolutions.");
}
return list;
}
나는 지금까지 성공하지 못한 EDID를 읽기 위해 레지스트리를 사용하는 예제를 볼 수있다. –
직접 레지스트리를 검색 했습니까? 정확한 레지스트리 경로는 시스템마다 크게 다르며 SetupAPI는 올바른 방식으로 올바른 레지스트리 경로를 검색합니다. –
SetupAPI를 사용하여 레지스트리 경로를 찾았지만 WinPE를 다룰 때 드라이버가 정보를 제공하지 않기 때문에 레지스트리에서 유용한 정보를 얻을 수 없습니다. –