簡體   English   中英

如何檢測顯示器是否是投影儀?

[英]How to detect if monitor is a projector?

有沒有辦法使用Windows API來檢測特定顯示器是投影儀(投影儀)而不是屏幕?

(我正在編寫一個投影映射桌面應用程序,我希望它能自動檢測投影機是否已連接並處於活動狀態,以便用戶將現實與預覽進行比較。)

我已經使用EnumDisplayMonitors和EnumDisplayDevices來查找監視器,但我找不到任何標志或其他顯示類型的指示。 我查看了DEVMODE和DISPLAY_DEVICE以及后者指向的注冊表項。 我沒有看到可以區分屏幕和投影儀的DeviceCapabilities或GetDeviceCaps調用。 我還查看了設備管理器,看看是否有一個屬性區分我的常規顯示器和投影機,但我找不到任何東西。 所以也許沒有辦法做到這一點。

但是,屏幕分辨率控制面板小程序將投影機識別為“PROJECTOR”,同時將我的主顯示器識別為“Dell U3011”。 使用EnumDisplayDevices,我可以從DISPLAY_DEVICE獲得“Dell U3011”字符串,但是,對於投影儀,我只得到“Generic PnP Monitor”。 不知何故,小程序必須在其他地方尋找獲得“PROJECTOR”字符串,或者它顯示“PROJECTOR”用於任何似乎是投影儀的通用PnP監視器。 那它看起來在哪里,它是如何知道的?

我相信答案是沒有可靠的方法來做到這一點。

控制面板顯示的“PROJECTOR”字符串是系統從EDID信息中提取的任意文本。 據我所知,Windows實際上“不知道”顯示器是投影儀還是LCD面板或CRT管。

EDID信息似乎沒有標記來指示這是否是投影儀。 我看到一個注意事項,投影儀通常會將一個或兩個物理圖像尺寸(以厘米為單位測量的尺寸)設置為零。 但這是在EDID 1.4的描述中,我的大多數設備都使用EDID 1.3。 實際上,我嘗試的投影機都沒有任何物理尺寸的0,所以它不是一個可靠的信號。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM