您应该能够使用EnumDisplayDevices
并ChangeDisplaySettingsEx
传递CDS_SET_PRIMARY
以选择要使用的监视器来执行此操作。这是否提供了我不知道的最佳界面。否则,您需要深入研究此处列出的多台显示器上的 WDDM 文档、 COM 文档或D3D 公开IViewHelper
的用户模式显示配置 API 。
但是想知道windows怎么能在系统设置里提供切换显示器的设置,虽然没有编程接口
需要注意的是,在 Windows 下,显示驱动程序需要暴露某些功能,以实现 Windows 内核使用的低级 API,让内核轻松完成此类任务。
显示驱动程序开发人员如何知道如何开发他们的驱动程序?不公开这些东西的原因是什么?
他们会有专门的 DDK 可供他们使用*(这里 [ XDDM | WDDM ] 是关于编写显示驱动程序的 MSDN 文档)。轻松交换监视器输出所需的那种 API 可能并不公开,因为很少有人需要它,因此他们宁愿将时间和金钱花在修复常用部分的错误上。
*I would assume, though the public DDK has some ancient samples from 3dlabs for the implementation of display drivers, and the online docs are pretty comprehensive, but writing a full display driver is a major task, and would most likely need direct support from MS, which would probably need you to be an MS ISV or hardware partner.