我都已經通過檢查值發現了一個監控設備名稱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()的所有顯示設備,並確定剛連接到計算機的正確顯示器/設備?