Мне нужно получить понятное имя монитора на Windows 7 с установленными драйверами монитора XDDM. Я использую функцию DisplayConfigGetDeviceInfo
в современных версиях Windows (где она работает нормально, см. Пример), но эта функция поддерживается только в системах с драйверами WDDM . Поэтому я ищу обходной путь для достижения той же функциональности с драйверами дисплея XDDM.
Способ WDDM:
[DllImport("user32.dll")]
public static extern int DisplayConfigGetDeviceInfo(ref DISPLAYCONFIG_TARGET_DEVICE_NAME deviceName);
private static string GetMonitorFriendlyName(LUID adapterId, uint targetId)
{
var deviceName = new DISPLAYCONFIG_TARGET_DEVICE_NAME
{
header =
{
size = (uint)Marshal.SizeOf(typeof(DISPLAYCONFIG_TARGET_DEVICE_NAME)),
adapterId = adapterId,
id = targetId,
type = DISPLAYCONFIG_DEVICE_INFO_TYPE.DISPLAYCONFIG_DEVICE_INFO_GET_TARGET_NAME
}
};
var returnCode = DisplayConfigGetDeviceInfo(ref deviceName);
if (returnCode != ERROR_SUCCESS)
{
throw new Win32Exception(returnCode);
}
return deviceName.monitorFriendlyDeviceName;
}