我有三个显示器。显示器 1 是通过 DP 连接的物理显示器。显示器 2 是通过 HDMI 连接的物理显示器。显示器 3 是虚拟的显示器(使用虚拟 HDMI 插头)。我使用的是 Windows 11 21H2。
我想创建两个 .bat 脚本。第一个 bat 脚本将启用仅显示 1 和 2(显示 3 将断开连接)。第二个 .bat 脚本将启用仅显示 3(显示器 1 和 2 将断开连接)。
我怎样才能做到这一点?
到目前为止我已经尝试过:
我一直在试验DisplaySwitch.exe
。问题是,当我运行时,DisplaySwitch.exe /internal
系统仅使用显示器 1(显示器 2 和 3 断开连接)。
我希望找到一个简单的命令来完成我想要的操作,例如DisplaySwitch.exe /1 /2
使用显示器 1 和 2,以及DisplaySwitch.exe /3
使用显示器 3。
答案1
尝试https://www.nirsoft.net/utils/multi_monitor_tool.html
运行它并读取监视器 ID 和序列号列。然后您可以启用/禁用监视器,例如
MultiMonitorTool.exe /enable monitor_identifier [monitor_identifier]
MultiMonitorTool.exe /disable monitor_identifier [monitor_identifier]
作为监视器标识符,您可以使用
监视器 ID,显示在“监视器 ID”列中,例如:MONITOR\GSM59A4{4d36e96e-e325-11ce-bfc1-08002be10318}\0008 -
显示器的序列号,如“显示器序列号”列中所示。
答案2
displayswitch 有 4 个参数
- /内部的
- /外部的
- /延长
- /克隆
我猜,
For 1 & 2 you want /extend
For 3 only, use /external (provided 2 is not connected)
我知道 /extend 可以工作,但是我的老显示器没有 HDMI 连接,所以我无法为您测试它。
答案3
不幸的是,您正在寻找的内容超出了批处理脚本的范围 - 除非它只是用作另一个可执行文件的包装器。
此功能可能存在于 PowerShell 中 - 请查看 WMI 类 - 并且肯定存在于 .NET 中。如果这是必须自动化的事情,您应该探索使用其中一个平台来执行此操作,或者找到可以处理此问题的第三方应用程序。
值得指出的是 - 虽然我并不是建议您切换操作系统作为解决方案 - 但是这可以使用 xrandr 等常见软件包在 Linux 系统上的 bash 脚本中轻松完成。