我遵循了以下建议: 如何在靠近屏幕边缘时禁用自动最大化/调整窗口大小(aero-snap)?
但它也会关闭按WinKey+键Left/Right Arrow可将窗口调整到箭头键方向上屏幕的一半的功能。
有没有办法独立控制它们?
答案1
尽管可能无法通过 GUI 来实现这一点,但是有一种方法可以通过编程来实现。
您想要的功能是系统参数信息。如果您想了解它的全部功能(它可以访问大量设置),您可以在 MSDN 上阅读有关它的信息,但您会对SPI_SETDOCKMOVING
和感兴趣SPI_SETSNAPSIZING
。
SPI_SETDOCKMOVING
通过拖动窗口的标题栏来切换窗口捕捉功能。您可以像这样关闭它:
SystemParametersInfo(SPI_SETDOCKMOVING, 0, NULL, SPIF_SENDCHANGE | SPIF_UPDATEINIFILE)
SPI_SETSNAPSIZING
通过使用窗口的顶部和底部边框调整窗口大小来切换窗口捕捉功能。您可以像这样关闭它:
SystemParametersInfo(SPI_SETSNAPSIZING, 0, NULL, SPIF_SENDCHANGE | SPIF_UPDATEINIFILE)
要重新启用任一功能,只需对第二个参数使用非零数字进行相同的调用即可。要使更改在重新启动后不保留,请从最后一个参数中删除 SPIF_UPDATEINIFILE 标志。
为了确保保留键盘快捷键不要在控制面板或注册表中关闭 AeroSnap。
细心的人可能会注意到,这里提供的参数并不是文档中预期的那样。具体来说,pvParam 和 uiParams 被切换了。这是我发现的唯一一种在我的计算机上(运行 Windows 8.1)使此功能正常工作的方法,所以我怀疑文档中存在错误。
答案2
以下注册表编辑实现正是所问的:
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Control Panel\Desktop]
"DockMoving"="0"
"SnapSizing"="0"
(您可以将其保存为 .reg 文件并运行它。需要重新启动或重新登录。)
实际上,这是要设置的两个设置,执行@gitbox 答案中的代码。
适用于Windows 7 - 10。
答案3
我以前也曾寻找过这个,但我认为 Windows 本身没有办法做到这一点。不过,还有第三方替代方案。首先,按照问题中的链接禁用 Aero 捕捉。然后,使用微软平板(一个特别的自动热键脚本设置)您可以在多显示器设置中恢复屏幕之间的移动窗口,使用左/右捕捉等(顶部、底部、中间和角落捕捉)。默认情况下,WindowsPad 使用Win+键(因为添加了功能),但您可以通过将以下内容添加到WindowsPad.ini 文件的部分NumPad来添加类似 aero-snap 的箭头键功能:[Hotkeys]
#+Left = WindowScreenMove,下一个 #+Right = WindowScreenMove, 上一个 #左 = WPM, -1, 0, 0.5, 1.0 #正确 = WPM, +1, 0, 0.5, 1.0 #Up = MaximizeToggle #Down = 恢复
不幸的是,您确实失去了捕捉到屏幕 50% 然后再恢复到原始位置的能力(因为它实际上是在调整窗口大小,而不是使用 Aero 捕捉)。但到目前为止,这是我发现的唯一缺点。
WindowsPad 角落和底部捕捉功能的演示:
答案4
您可以在注册表中执行此操作。
- 打开 regedit.exe
- 导航
HKEY_CURRENT_USER \Control Panel\Desktop
WindowArrangementActive
双击选择字段- 将值设置为
0
- 重新启动(注销并重新登录可能会有效)
从这里找到http://www.technorms.com/33660/how-to-disable-the-windows-snap-feature