c++ 獲取顯示器的連線埠型別(VGA,HDMI,DVI等等)

承接各種程式設計私活發表於2014-07-28

由於研究需要,需要獲取當切換顯示器或者其他顯示裝置的時候,所使用的介面型別。現在主要的埠有HDMI,VGA和DVI等。之前從網上逛了一下,發現大部分人都採用EnumDisplayDevices等函式來獲取,但是這些函式返回的資訊中,並不包含介面型別。還有很多人說這個資訊只能從底層驅動中來進行獲取,這個豈不是讓我寫相關硬體開發程式碼。。。後來終於在這裡(http://stackoverflow.com/questions/9902908/getting-display-device-output-type-with-directx)找到了希望。

具體操作其實很簡單,就是連線WMI,之後從WmiMonitorConnectionParams這張表裡面獲取所有連線的顯示裝置的輸出型別。得到輸出型別程式碼之後,可以從這裡(http://msdn.microsoft.com/en-us/library/windows/hardware/ff546605%28v=vs.85%29.aspx)獲取到具體的型別,裡面就有HDMI,VGA和DVI等埠型別。

如果你希望當裝置及時獲取這個資訊,你可以在系統中,抓取WM_DISPLAYCHANGE訊息,之後再這個訊息處理中,進行WMI的資訊查詢。


注:WMI查詢可以參考:http://blog.csdn.net/fdyang2008/article/details/7615708


相關文章