如何在外部显示器断开-重新连接循环期间保持打开的窗口?

如何在外部显示器断开-重新连接循环期间保持打开的窗口?

我正在使用扩展模式下的外接显示器(投影仪)。断开连接并重新连接后,所有窗口都显示在主显示器上,而扩展显示器为空。我想在断开连接-重新连接循环期间将所有窗口保留在外接显示器上。

背景:我正在做演示,投影仪输入通过 HDMI 开关,这样我就可以在投影仪上显示另一个画面。当我离开 PC 时,Windows 会将其视为显示器断开连接并重新排列我的窗口。当我切换回 PC 时,我的演示消失了,我需要移动窗口才能回到原来的位置。这听起来像是一个常见问题,但到目前为止,我还没有看到任何适合我的解决方案。

我查看了各种相关问题,大部分与显示器进入睡眠状态后重新排列窗口有关(不同的问题,相同的根本原因),但我无法找到适合我的解决方案。以下是我正在考虑的所有选项,理想情况下,有人会分享一个肯定有效的解决方案,但如果没有,从以下选项中排除一些选项仍然会有所帮助。

1)禁用 Windows 中的自动显示检测。

A)我读到的一种方法是将 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\TMM 中的 UselViewHelper 设置为 0,这是这里建议的: https://www.reddit.com/r/Amd/comments/5jlk82/how_to_prevent_windows_from_rearranging_when/ 但对我来说没用。我试过了,重启后,电脑的行为和以前一样。

b)我读到过一篇文章,说只要电缆还插着,Windows 就不会自动检测从 VGA 端口拔下的显示器。这听起来不太有说服力,因为使用 VGA 假棒是没有意义的,但我会尝试一下。我已经订购了一个 VGA 到 HDMI 转换器,因为我没有 VGA 端口。

2)模拟外接显示器

如果我可以添加虚拟外接显示器,我就可以设置一个扩展桌面镜像到两个外接显示器(投影仪和虚拟显示器)。然后,断开并重新连接两个镜像显示器之一不应该重新排列窗口。这里的第一个问题是我甚至不知道是否可以复制扩展桌面。

第二个问题是添加虚拟显示,为此我尝试了很多解决方案:

A)HDMI 转 VGA,然后 VGA 分配器,然后 VGA 虚拟棒这应该是相对万无一失的,因为它避免了第一个问题 - Windows 不需要镜像第二和第三个显示器

b)USB 转 VGA,可能带有一个假棒,以防 Windows 无法获知有显示器连接到 VGA 端口(我已经订购了适配器,因此我可以测试这一点)

C)使用移动应用程序将显示扩展到手机,例如这个: https://play.google.com/store/apps/details?id=com.devguru.eltwomonusb&hl=es 因此,在这种情况下,它不会是幽灵显示器,而是实际的设备 - 但分辨率可能不匹配,并且由于非正统方法,可能会出现其他问题。

d)使用软件将显示内容发送到另一台 PC 或其他设备。据称,这可以通过 Windows Connect、iDisplay、Airscreen、Splashtop Extended Desktop 或其他工具来完成。这还将产生实际的附加显示内容,而不是虚拟的 - 它只是不会通过电缆连接。

3)摆弄下面的设置HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\Configuration

正如这里所建议的,以及其他地方: 如何在从睡眠状态唤醒后停止窗口重新定位?

我没有在线描述的 SIMULATED 条目,但我有一个 MSNILNOEDID...,它可能具有类似的功能。我有一个笔记本电脑屏幕条目(HHT00301...),还有十几个投影仪条目(BOE06F90...)。它们似乎都按照其他答案的配置进行配置:笔记本电脑屏幕为 3840x2160,投影仪条目为 1920x1080,(据称)模拟条目为 1920x1080。

4)使用 HDMI 开关,让 PC 误以为显示器仍处于连接状态。

我不知道这样的设备是否存在,如果存在,我不知道如何找到它。

5) 使用自定义软件解决方案在投影仪断开连接时模拟外部显示。

我在这里找到了一个这样的解决方案:https://archive.codeplex.com/?p=persistentwindows 该项目已停止,但我设法下载了代码。幸运的是,这是一个 .NET 应用程序,我是一名 .NET 开发人员,但看起来工作量很大 - 它甚至无法开箱即用,看起来很复杂,而且我没有任何验证它是否真的有效。

答案1

请尝试最新增强功能持久窗口

免责声明:我是增强功能的贡献者

答案2

答案是选择1. b) 使用 VGA 输出

插入 HDMI 转 VGA 适配器后,Windows 会将其作为外接显示器,并乐意将桌面扩展到它。然后,您可以随心所欲地连接或断开外接显示器,打开的窗口将保留在原处(或者在我的情况下,您可以使用 HDMI 开关切换出此视频源,然后再返回)。

因此,我不是直接从 HDMI 输出连接到 HDMI 开关,而是使用连接到 VGA 转 HDMI 电缆的 HDMI 转 VGA 适配器;这听起来很荒谬且技术含量低,但它确实有效,而且似乎会一直保持这种状态,直到微软添加一种可靠的方法来禁用此显示自动检测功能。

相关内容