描述
通过EnumDisplayDevices功能,您可以获取有关当前会话中显示设备的信息。
C++ 语法
BOOL EnumDisplayDevices( __in LPCTSTR lpDevice, __in DWORD iDevNum, __out PDISPLAY_DEVICE lpDisplayDevice, __in DWORD dwFlags ); |
PowerBASIC 语法
FUNCTION EnumDisplayDevicesA ( _ BYREF lpDevice AS ASCIIZ, _ BYVAL iDevNum AS DWORD, _ BYREF lpDisplayDevice AS DISPLAY_DEVICEA, _ BYVAL dwFlags AS DWORD _ ) AS LONG |
Unicode版本:
FUNCTION EnumDisplayDevicesW ( _ BYREF lpDevice AS WSTRINGZ, _ BYVAL iDevNum AS DWORD, _ BYREF lpDisplayDevice AS DISPLAY_DEVICEW, _ BYVAL dwFlags AS DWORD _ ) AS LONG |
参数
lpDevice
[in]指向设备名称的指针。如果为NULL,则函数返回机器上显示适配器的信息,基于iDevNum.有关详细信息,请参阅备注。
iDevNum
[in]指定感兴趣的显示设备的索引值。
操作系统使用索引值标识当前会话中的每个显示设备。索引值是从0开始的连续整数。如果当前会话具有三个显示设备,例如,它们由索引值0,1和2指定。
lpDisplayDevice
[out]指向DISPLAY_DEVICE结构的指针,该结构接收iDevNum指定的显示设备的信息。
在致电EnumDisplayDevices之前,您必须将DISPLAY_DEVICE的cb成员初始化为DISPLAY_DEVICE的大小(以字节为单位)。
dwFlags
[in]将此标志设置为EDD_GET_DEVICE_INTERFACE_NAME(&H00000001)以检索操作系统根据每个监视器注册的GUID_DEVINTERFACE_MONITOR的设备接口名称。该值放置在lpDisplayDevice中返回的DISPLAY_DEVICE结构的DeviceID成员中。所产生的设备接口名称可与SetupAPI功能一起使用,并用作GDI监视设备和SetupAPI监视设备之间的链接。
返回值
如果函数成功,返回值不为零。
如果函数失败,返回值为零。如果iDevNum大于最大设备索引,则该函数将失败。
备注
要查询当前会话中的所有显示设备,请在循环中调用此函数,从iDevNum设置为0,然后递增iDevNum直到函数失败。要选择桌面中的所有显示设备,请仅使用在DISPLAY_DEVICE结构中具有DISPLAY_DEVICE_ATTACHED_TO_DESKTOP标志的显示设备。
要获取显示适配器的信息,请将lpDevice设为NULL。例如,DISPLAY_DEVICE.DeviceString包含适配器名称。
要获取显示监视器上的信息,请首先将EnumDisplayDeviceslpDevice设置为NULL。然后致电EnumDisplayDevices,lpDevice设置为DISPLAY_DEVICE.DeviceName,首次致电EnumDisplayDevices,并将iDevNum设置为零。那么DISPLAY_DEVICE.DeviceString是监视器名称。
如果适配器有多个显示器,要获取所有这些信息,您必须重复调用EnumDisplayDevices.每次调用该函数时,将lpDevice设置为适配器名称并增加iDevNum.请注意,每个调用监视器信息都会更改DISPLAY_DEVICE.DeviceName,因此必须保存适配器名称。当适配器没有更多显示器时,该函数将失败。
Windows 98 / Me:Microsoft Layer for Unicode支持EnumDisplayDevicesW.
引用文件 #INCLUDE Once
WinUser.inc(包括Windows.inc)