誰かがEnumDisplayDevicesを使用してモニターの名前を調べたいというこの投稿に出くわしました。
これはまさに私が望んでいることであり、C ++で同様のことを試みましたが、EnumDisplayDevicesへの2回目の呼び出しでは何も返されないようで、グラフィックカードに関する情報しか取得できません。
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であり、モニター名を見つけるための標準的な方法はありません。何か案は?
ありがとう。