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 成員中。 產生的裝置介面名稱可以搭配 SetupAPI 函 式使用,並做為 GDI 監視器裝置與 SetupAPI 監視器裝置之間的連結。
傳回值
如果函式成功,則傳回非零的值。
如果此函式失敗,則傳回值為零。 如果 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 [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | winuser.h (包含 Windows.h) |
程式庫 | User32.lib |
Dll | User32.dll |
API 集合 | ext-ms-win-ntuser-sysparams-ext-l1-1-1 (Windows 10 10.0.14393 版) |