如何在从睡眠状态唤醒后停止窗口重新定位?

如何在从睡眠状态唤醒后停止窗口重新定位?

当多显示器系统不使用时,我会将其置于睡眠状态。唤醒后,所有窗口都会重新定位到不同的屏幕上。我能想到的最接近的模式是主屏幕上的窗口切换到第二个屏幕。它似乎在进入睡眠状态之前断开了主屏幕的连接,从而将所有窗口切换到第二个或第三个屏幕。

编辑:这是我正在使用的显卡——> SAPPHIRE FleX 100322FLEX Radeon HD 6450

答案1

问题很可能出在显卡驱动程序上。每当 Windows 中的多显示器设置中单个显示器断开连接时,Windows 都会尝试将该屏幕上的所有内容移到其余屏幕上。通常,在挂起/休眠/关闭计算机时不会发生这种情况。因此,这可能是因为显卡驱动程序执行了以下某项操作:

  • 当您让计算机进入睡眠状态时“断开”显示器,因此当 Windows 唤醒时,它必须重新确定所有内容的放置位置。
  • 每次将计算机从睡眠状态唤醒时,都会以不同的顺序识别显示器,从而强制 Windows 重新排列您的应用程序窗口。

请访问芯片组制造商的网站,检查您的显卡驱动程序是否有更新。

答案2

这是一个老问题,但如果有人遇到同样的问题,我建议尝试这里发布的解决方案:

http://answers.microsoft.com/en-us/windows/forum/windows_7-hardware/windows-7-movesresizes-windows-on-monitor-power/1653aafb-848b-464a-8c69-1a68fbd106aa

我在运行 Windows 8.1,在 DisplayPort 上有两个 2560x1440 显示器。从睡眠状态唤醒时,我的所有窗口都被推送到一个显示器上,其中一些窗口的大小被调整了。这为我解决了这个问题;现在我的所有窗口位置和大小都保留了下来。以下是相关链接内容:

我找到了一个解决方法。使用 Sysinternals ProcessMonitor 我发现 Windows 正在访问以下注册表路径:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\GraphicsDrivers\Configuration

我的系统有三个条目:

  • DELF003YY7707BR0MUL_30_07D7_6A^9A3774EB79DEE3E3E38496CC7DF4D936
  • QHD32000001_31_07D6_D5^63E1ABDD175E7871DCAEB710418A0F75
  • SIMULATED_8086_2A42_00000000_00020000_1010100^CDE365D1B3F0942F0CF38BFB8E127AB4

每个钥匙下都有一棵树,名为00。其中两个钥匙是:

  • PrimSurfSize.cx
  • PrimSurfSize.cy

下面00是另一个分支,也称为00。其中两个键是:

  • ActiveSize.cx
  • ActiveSize.cy

在前两个配置(即DELF00...& QHD3...)中,上述键为 1440x900,因此不涉及它们。

第三个(SIMULATED...)设置为1024x768。

我将其改为 1600x900,问题就解决了。

此外,我通过控制面板将分辨率更改为 1920x1080,移动/调整大小问题再次出现,但右下角设置为 1600x900,即设置SIMULATED...

因此由于某种原因,其中一个配置没有正确设置。

我不知道为什么有三个配置,我只使用过一个显示器。

答案3

如果您的计算机配有 Intel HD Graphics,则必须从 Intel Graphics 控制面板设置扩展显示选项(和分辨率设置)。如果您从 Windows 显示设置执行此操作,则在您将其从睡眠模式唤醒后,它将重置。

这是屏幕截图。

在此处输入图片描述

答案4

我认为我找到了解决这个问题的方法,结合了这些帖子

(我的电脑是 Windows 10 TH2、带 HDMI 端口的 Intel HD4600、长虹 4k 显示器)

具体流程如下。

  1. 删除 ...GraphicDrivers\Configuration 和 GraphicDrivers\Connectivity 下的所有多余的注册表项,只留下与我的显示器相对应的项(MST00301...)

  2. 在使显示器进入睡眠状态之前,只需输入“WIN”+“D”组合键即可最小化所有桌面窗口。

  3. 打开显示器后,再次输入“WIN”+“D”可恢复所有窗口。

相关内容