我遇到了this發佈,其中有人想使用EnumDisplayDevices查找其顯示器的名稱。使用EnumDisplayDevices獲取顯示器名稱
這正是我想要的,我試圖在C++中做類似的事情,但第二次調用EnumDisplayDevices似乎永遠不會返回任何東西,我只能得到關於顯卡的信息。
DISPLAY_DEVICE dd;
memset(&dd, 0, sizeof(DISPLAY_DEVICE));
dd.cb = sizeof(dd);
int i = 0;
while(EnumDisplayDevices(NULL, i, &dd, 0))
{
Log(_T("Device Name: %s Device String: %s"), dd.DeviceName, dd.DeviceString);
if(EnumDisplayDevices(dd.DeviceName, 0, &dd, 0))
{
Log(_T("Monitor Name: %s Monitor String: %s"), dd.DeviceName, dd.DeviceString);
}
i++;
}
我得到的輸出是
Device Name: \\.\DISPLAY1 Device String: NVIDIA GeForce 9300 GE
Device Name: \\.\DISPLAYV1 Device String: NetMeeting driver
Device Name: \\.\DISPLAYV2 Device String: RDPDD Chained DD
目標平臺是XP,我不能找出監視器名稱的任何標準方式。有任何想法嗎?
謝謝。
FWIW,我有一個指針指向代碼,可以從EDID塊在http://stackoverflow.com/questions提取這個帖子/ 10237937 /尋找一個可靠的映射表格屏幕設備監測edid信息 – holtavolt 2012-04-24 17:05:07
謝謝我會嘗試一下現在。 – 2012-04-25 08:14:08