我都已经通过检查值发现了一个监控设备名称DEV_BROADCAST_DEVICEINTERFACE.dbcc_name
,我尝试使用该设备名称的功能EnumDisplaySettings()
内(该设备名称为第一个参数该功能)。非标准设备名称使用EnumDisplaySettings
我的问题:函数EnumDisplaySettings()
总是返回0,即失败。我相信它失败了,因为MSDN说EnumDisplaySettings()
的第一个参数应该是DISPLAY_DEVICE.DeviceName returned from EnumDisplayDevices
,而我的设备名称是从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()的所有显示设备,并确定刚连接到计算机的正确显示器/设备?