我通过检查值找到了监视器的设备名称DEV_BROADCAST_DEVICEINTERFACE.dbcc_name
,并且我试图在函数中使用该设备名称EnumDisplaySettings()
(设备名称是该函数的第一个参数)。
我的问题:函数EnumDisplaySettings()
总是返回 0,即失败。我相信它失败了,因为 MSDN 说的第一个参数EnumDisplaySettings()
应该是 aDISPLAY_DEVICE.DeviceName returned from EnumDisplayDevices
而我的设备名称是 from DEV_BROADCAST_DEVICEINTERFACE.dbcc_name
。
使用DEV_BROADCAST_DEVICEINTERFACE.dbcc_name
我获得\\?\DISPLAY#GSM3AD7#5&20a3f50d&0&UID513#{866519b5-3f07-4c97-b7df-24
c5d8a8ccb8}
第二台显示器的设备名称,而EnumDisplayDevices()
给我设备名称\\.\DISPLAYV1
。
是否可以使用 EnumDisplaySettings(),其中第一个参数是从函数 DEV_BROADCAST_DEVICEINTERFACE.dbcc_name 检索的设备名称?
我问的原因是:当第二台显示器连接到计算机时,我想更改该显示器的显示设置。但是在监视器连接时,我会收到它的设备名称通知,通过DEV_BROADCAST_DEVICEINTERFACE.dbcc_name
它(如上所述)与 EnumDisplayDevices() 为完全相同的设备返回的名称不同。而且我不知道如何通过枚举所有使用 EnumDisplayDevices() 的显示设备来识别第二台显示器?任何想法如何使用 EnumDisplayDevices() 枚举所有显示设备并识别刚刚连接到计算机的正确监视器/设备?