我正在开发一款手机应用,它可以自动执行家用电脑的许多方面。其中一个方面是在一个work
环境与另一个home
环境之间切换。两者之间的切换主要包括更改显示器配置(但如果可能,还包括声音输出)。
我的机器上连接了三台显示器,在我的work
环境中我只希望显示器 1 和 2 处于活动状态...但在home
环境中我希望显示器 3 成为唯一处于活动状态的显示器。
我一直在努力寻找一种自动化方法。我尝试了几种不同的工具,包括 NirSoft 套件中的几种工具(MonitorInfoTool 和 MultiMonitorTool)。然而,我发现的每种工具似乎都有一个严重的缺陷:ID 要么不唯一(即每次我更改监视器配置时它们都会更改),要么就是完全错误的。
MonitorInfoTool:经常会混淆两个监视器,会显示监视器 1 和 3 处于活动状态,而实际上 2 和 3 处于活动状态(我知道这不是所需的配置,但是我弄错了)。
MultiMonitorTool:没有唯一标识符。最接近的唯一标识符是 \\.\DISPLAYX 标识符,当监视器配置发生更改时,该标识符似乎是随机分配的。此工具还具有加载/保存监视器配置功能,但我发现它经常不起作用。
经过一番研究,似乎这主要是 Windows 7 的问题。微软只是没有费心创建一种简单的方法来识别其他程序的监视器。
有人能够在 Windows 7 中可靠地切换显示器配置吗?有人能够在 Windows 7 中可靠地将某种用于切换的标识符(即 \\.\DISPLAYX id)映射到人类可读(或半可读)的名称吗?