3

我正在尝试使用 c++ 在 Windows 7 中获取附加的监视器,我使用的代码如下

void ListDisplayDevices()
{
    int index=0;
    DISPLAY_DEVICE dd;
    dd.cb = sizeof(DISPLAY_DEVICE);

    while (EnumDisplayDevices(NULL, index++, &dd, 0))
    {
        if (dd.StateFlags & DISPLAY_DEVICE_PRIMARY_DEVICE) printf("* ");
        printf("%s, %s\n", dd.DeviceName, dd.DeviceString);
    }
}

但是这个函数的输出很简单

* \, A
\, A
\, A
\, R
\, R
\, R
\, V

这里可能有什么问题?

4

1 回答 1

0

她是我的尝试:

int main()
{
       DISPLAY_DEVICE dd;
       dd.cb = sizeof(dd);
       int deviceIndex = 0;
       // la première fois, on parcours les adapteurs video
       while (EnumDisplayDevices(0, deviceIndex, &dd, 0))
       {
             // deviceName contient ici le nom d'une carte video
             std::string deviceName = dd.DeviceName;
             int monitorIndex = 0;
             DISPLAY_DEVICE ddMonitor;
             ddMonitor.cb = sizeof(ddMonitor);
             // la deuxième fois on parcours les moniteurs pour chaque adapteur video
             while (EnumDisplayDevices(deviceName.c_str(), monitorIndex, &ddMonitor, 0))
             {
                    // ici Devicename contient le nom d'un moniteur
                    std::cout << "Nom moniteur = " << ddMonitor.DeviceName << std::endl;
                    ++ monitorIndex;
             }
             ++deviceIndex;
       }
       return 0;
}

它在单显示器计算机上输出以下内容: Nom moniteur = \\.\DISPLAY1\Monitor0

于 2019-02-26T12:59:03.927 回答