EnumDisplayMonitors
列出當前激活的所有顯示器。但是,它似乎並沒有返回禁用的功能(即「將我的桌面擴展到此監視器上」的功能取消選中)。我如何獲得包括那些殘疾人的人數?windows:獲取顯示器數量,包括禁用顯示器數量
回答
好了,首先你要創建一個設備上下文:
http://msdn.microsoft.com/en-us/library/dd183490(v=VS.85).aspx下面的代碼會給你所有的顯示器:
CreateDC(TEXT("DISPLAY"),NULL,NULL,NULL)
然後你會召喚DeviceContext的EnumDisplayDevices這將有一個指針轉換爲DISPLAY_DEVICE結構,其中包含有關顯示設備的設置的信息。 http://msdn.microsoft.com/en-us/library/dd162609(v=VS.85).aspx
每MSDN:
要查詢所有顯示設備在當前會話中,調用這個函數在一個循環中,從iDevNum設置爲0,並增加iDevNum直至功能失效。要選擇桌面中的所有顯示設備,請僅使用DISPLAY_DEVICE結構中具有DISPLAY_DEVICE_ATTACHED_TO_DESKTOP標誌的顯示設備。
要獲取有關顯示適配器的信息,請將lpDevice設置爲NULL的方式調用EnumDisplayDevices。例如,DISPLAY_DEVICE.DeviceString包含適配器名稱。
要獲得顯示監視器上的信息,首先調用EnumDisplayDevices並將lpDevice設置爲NULL。然後調用EnumDisplayDevices,將lpDevice從第一次調用EnumDisplayDevices設置爲DISPLAY_DEVICE.DeviceName,並將iDevNum設置爲零。然後DISPLAY_DEVICE.DeviceString是監視器名稱。
要查詢與適配器關聯的所有監視設備,請在lpDevice設置爲適配器名稱的情況下調用EnumDisplayDevices,將iDevNum設置爲從0開始,並將iDevNum設置爲遞增,直到函數失敗。請注意DISPLAY_DEVICE.DeviceName隨監視器信息的每次調用而變化,因此您必須保存適配器名稱。當適配器沒有更多監視器時,該功能失敗。
我不是C++程序員,但是我不得不在一天中編寫一些顯示方式的東西,而我只是試圖幫助我記憶中的那一點。 WINAPI上我有點生疏。
如果他們幫助您解決您的問題,請將我的帖子標記爲「已回覆」! :) 謝謝! – bleepzter 2011-01-28 18:42:21
你檢查了顯示器的顯示功能嗎?
我很確定MONITORINFO結構的MONITORINFOF_PRIMARY標誌指定哪個監視器是主監視器。任何具有MONITORINFO或MONITORINFOEX結構的監視器都是「有用的」監視器。
http://msdn.microsoft.com/en-us/library/dd145065(v=VS.85).aspx
至於顯示器也可這是什麼鏈接,您可以檢查這些:
獲取監控信息:http://msdn.microsoft.com/en-us/library/dd144942(v=VS.85).aspx
枚舉顯示設備:http://msdn.microsoft.com/en-us/library/dd162609(VS.85).aspx
顯示設備結構:http://msdn.microsoft.com/en-us/library/dd183569(v=VS.85).aspx
顯示設備結構有一個「DISPLAY_DEVICE_ACTIVE」標誌,表示設備是否處於活動狀態。
看起來你不能在EnumDisplayMonitors中包含禁用的監視器,所以我在閱讀這個答案之後仍然不確定,你如何獲得包含顯示項目的列表,以及如何檢查返回的結構,活動標誌。我猜你在說EnumDisplayDevices應該包含非活動設備? – 2011-01-28 18:24:54
- 1. 服務器端包括沒有顯示
- 2. SQL顯示未讀消息的數量...包括未讀回覆
- 3. 調用setTemplate()後顯示獲取變量
- 4. SQL查詢,顯示數量
- 5. 如何獲取wpf數據網格中顯示行的數量
- 6. 如何在Windows中獲得用於特定顯示器的顯示適配器?
- 7. Jtwig獲取參數顯示
- 8. Gtk:獲取每個顯示器的可用區域(不包括面板)
- 9. 使用EnumDisplayDevices獲取顯示器名稱
- 10. Html.EditorFor顯示正確的項目數量,但不顯示數據
- 11. 顯示矢量
- 12. 顯示最大租用數量列表
- 13. 用JList顯示大量的數據?
- 14. 角度控制器變量不顯示
- 15. PhpEd調試器顯示變量空值
- 16. Eclipse編輯器顯示變量發生
- 17. 顯示一定數量的素數
- 18. 隨機發生器從數組中獲取數據不顯示
- 19. 計數器顯示設計
- 20. ServiceModelOperation計數器不顯示
- 21. 獲取會話變量數組列表到顯示標籤
- 22. 獲取精確的顯示器/顯示/屏幕名稱
- 23. MAC OS獲取顯示器垂直同步和顯示速率
- 24. 更改Awesomium在Windows音量混音器中的顯示方式
- 25. SWT:單顯示器與多顯示器
- 26. 獲取數據以使用strtotime顯示
- 27. 在Python中獲取顯示器大小
- 28. 在微調器中獲取值顯示
- 29. win32:獲取顯示器的當前DEVMODE
- 30. java.lang.IllegalMonitorStateException:(m = null)無法獲取顯示器
你必須直接與視頻驅動程序交談。 IOCTL_VIDEO_ENUM_MONITOR_PDO,我想。記錄很差。 – 2011-01-28 18:41:19