EnumDisplayDevicesA 函数 (winuser.h)
EnumDisplayDevices 函数允许你获取有关当前会话中显示设备的信息。
语法
BOOL EnumDisplayDevicesA(
[in] LPCSTR lpDevice,
[in] DWORD iDevNum,
[out] PDISPLAY_DEVICEA lpDisplayDevice,
[in] DWORD dwFlags
);
参数
[in] lpDevice
指向设备名称的指针。 如果 NULL,则函数将基于 iDevNum返回计算机上的显示适配器的信息。
有关详细信息,请参阅“备注”。
[in] iDevNum
一个索引值,该值指定感兴趣的显示设备。
操作系统使用索引值标识当前会话中的每个显示设备。 索引值为连续整数,从 0 开始。 例如,如果当前会话有三个显示设备,则它们由索引值 0、1 和 2 指定。
[out] lpDisplayDevice
指向 DISPLAY_DEVICE 结构的指针,该结构接收有关 iDevNum指定的显示设备的信息。
在调用 EnumDisplayDevices之前,必须将 DISPLAY_DEVICE 的 cb 成员初始化为大小(以字节为单位)DISPLAY_DEVICE。
[in] dwFlags
将此标志设置为EDD_GET_DEVICE_INTERFACE_NAME(0x00000001)以检索GUID_DEVINTERFACE_MONITOR的设备接口名称,该名称由操作系统根据每个监视器注册。 该值放置在 lpDisplayDevice中返回的 DISPLAY_DEVICE 结构的 DeviceID 成员中。 生成的设备接口名称可用于
返回值
如果函数成功,则返回值为非零。
如果函数失败,则返回值为零。 如果 iDevNum 大于最大设备索引,该函数将失败。
言论
若要查询当前会话中的所有显示设备,请通过循环调用此函数,从 iDevNum 设置为 0 开始,并在函数失败之前递增 iDevNum。 若要选择桌面中的所有显示设备,请仅使用 DISPLAY_DEVICE 结构中具有DISPLAY_DEVICE_ATTACHED_TO_DESKTOP标志的显示设备。
若要获取有关显示适配器的信息,请调用 EnumDisplayDevices,并将 lpDevice 设置为 NULL。 例如,DISPLAY_DEVICE。DeviceString 包含适配器名称。
若要获取有关显示监视器的信息,请首先调用 EnumDisplayDevices,lpDevice 设置为 NULL。 然后调用 enumDisplayDevices,lpDevice 设置为 DISPLAY_DEVICE。从第一次调用 EnumDisplayDevices 并使用 iDevNum 设置为零,DeviceName。 然后 DISPLAY_DEVICE。DeviceString 是监视器名称。
若要查询与适配器关联的所有监视设备,请在循环中调用 EnumDisplayDevices,lpDevice 设置为适配器名称,iDevNum 设置为从 0 开始,iDevNum 设置为递增,直到函数失败。 请注意,DISPLAY_DEVICE。DeviceName 每次调用监视器信息时都会发生更改,因此必须保存适配器名称。 当适配器没有更多监视器时,该函数将失败。
注意
winuser.h 标头将 EnumDisplayDevices 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的
要求
要求 | 价值 |
---|---|
最低支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
支持的最低服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | 窗户 |
标头 | winuser.h (包括 Windows.h) |
库 | User32.lib |
DLL | User32.dll |
API 集 | ext-ms-win-ntuser-sysparams-ext-l1-1-1(在 Windows 10 版本 10.0.14393 中引入) |