通过 Win32 API 或 NVidia API 启用/禁用多个显示器?
Posted
技术标签:
【中文标题】通过 Win32 API 或 NVidia API 启用/禁用多个显示器?【英文标题】:Enable/Disable multiple monitors via Win32 API or NVidia API? 【发布时间】:2011-10-02 22:50:15 【问题描述】:我正在尝试编写一个小型实用程序,该实用程序将使用我的 nVidia 显卡在 Windows 7 下启用/禁用监视器。 (即“将桌面扩展到此显示器上”等)
原因是我的 nVidia Geforce GTX 480 有三个输出(2x DVI,1x Mini-HDMI),但在任何给定时间只允许两个处于活动状态,所以当我想切换到我的显示器时,我需要启用/禁用显示器电视 (HDMI) 显示器。
Win32 API 函数 EnumDisplayDevices 不起作用,因为它不显示禁用的监视器。
nVidia 提供 API (NVAPI) 并具有枚举所有监视器(甚至禁用的监视器)的功能,您可以启用监视器但不能禁用监视器. (我指的是 NvAPI_CreateDisplayFromUnAttachedDisplay)
UltraMon 似乎已经知道如何执行此操作,但我找不到任何信息。
【问题讨论】:
嗨!您找到任何解决方案了吗?我正在尝试制作类似的应用程序来远程管理来自 android 设备的监视器布局。 如果 EnumDisplayDevice() 没有返回禁用的显示器,SetupDi* 函数应该为您提供必要的设备名称,包括 PNP 设备 ID 【参考方案1】:我认为如果已经连接了三分之二的显示器,则不会检测到第三个。 该卡将停止侦听新硬件。 您必须手动取出电缆,然后将新电缆插入不同的端口。 除非有办法“弹出”连接,类似于 USB 存储设备。
【讨论】:
以上是关于通过 Win32 API 或 NVidia API 启用/禁用多个显示器?的主要内容,如果未能解决你的问题,请参考以下文章