【问题标题】:How to change 3rd monitor programmatically如何以编程方式更改第三个监视器
【发布时间】:2013-02-22 19:20:51
【问题描述】:

当我使用笔记本电脑时,我使用 3 个显示器:

  1. 笔记本电脑显示屏
  2. 第二台显示器(通过 VGA 连接)
  3. 电视(通过 HDMI 连接)

我的显卡不支持 3 台显示器,所以我经常从 2 台切换到 3 台:当我在电脑上时,我使用第二台显示器,当我想看一些电影等时,我使用第三个。

我目前必须转到屏幕分辨率,选择未使用的显示器,然后选择将桌面扩展到此显示器

有什么方法可以让它自动化吗?

是否有任何命令行工具或任何允许这样做的 Windows API?

编辑:
Display Changer 似乎可以满足我的需要,但问题是它只检测到工作中的监视器。未检测到第三台显示器(当前未使用),因此我无法连接它。

【问题讨论】:

  • 我最终买了一台配备 Haswell 处理器的笔记本电脑。它包括支持 3 个显示器的 Intel HD 4600 ;)

标签: windows automation multiple-monitors video-card


【解决方案1】:

DisplaySwitch.exe 上的一点 RE 表明它调用了

SetDisplayConfig(0, NULL, NULL, NULL, 0x888)

在我的计算机上将其设置为扩展。

从那里,一点点挖掘让我明白了SetDisplayConfig 文档和this SO page 的一些示例代码,这些代码可以查询您当前的显示状态并添加实际标志以更改它们(如果您想这样做的话)。

【讨论】:

    【解决方案2】:

    我回答了similar question 并建议尝试UltraMon 或使用他们的SDK,但您也可以直接使用ChangeDisplaySettingsEx 访问Win32 API。另一位用户Sai 引用了example showing use of the function

    【讨论】:

    • 感谢您的回复。让我看看那些链接:)
    • UltraMoon 配置文件适合我。唯一的缺点是,一旦我从配置文件切换,我所有打开的窗口都会被放置到第一台显示器中。
    • @OscarMederos,我也注意到 RDP 的问题。我不确定这是 UltraMon 问题还是更普遍的问题。
    • 我会等着看是否有人发布另一个答案。如果没有,我会接受这个,因为我正在寻找更多的脚本解决方案:)
    猜你喜欢
    • 2014-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多