如何禁用Windows 7功能,当移动到屏幕边缘时,该功能可使窗口最大化到全屏状态(但保持键盘快捷键有效)?


10

我遵循以下建议: 在靠近屏幕边缘时如何禁用自动最大化/调整窗口大小(自动捕捉)?

但这也会关闭按WinKey+ 的功能,即按Left/Right Arrow箭头键的方向将窗口固定到屏幕的一半。

有没有办法独立控制它们?


我一直在寻找相同的解决方案,但我相信它不可能在本地完成。Microsoft如何让用户轻松自定义这些设置?
用户

1
不可能有太多琐碎的事情。为什么?因为MS不了解可用性。他们最新的xbox展示了最好的。他们希望人们为他们的软件支付荒谬的费用。
Joan Venge 2013年

Answers:


3

尽管可能没有通过GUI进行此操作的方法,但是有一种可以通过编程方式完成此操作的方法。

您想要的功能是SystemParametersInfo。你可以在MSDN上读到它,如果你想它的全部功能(这是可以访问的设置荒谬的数字),但你会感兴趣的SPI_SETDOCKMOVINGSPI_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的唯一方法,因此我怀疑文档中存在错误。


在设置了SPIF_UPDATEINIFILE的情况下执行此代码的结果是:superuser.com/a/1464761/128356 (使仅在注册表中应用这些编辑成为可能)。
公爵努克

2

过去,我一直在寻找这种方法,但我不相信Windows本身可以采用这种方法。但是,还有第三方替代方法。首先,按照问题中的链接禁用航空捕捉。然后,使用WindowsPad(特殊的AutoHotkey脚本设置),您可以在多显示器设置中还原屏幕之间的移动窗口,使用向左/向右捕捉,等等(顶部,底部,中间和角落捕捉)。默认情况下,WindowsPad使用Win+ NumPad键(因为添加了功能),但是您可以通过将以下内容添加到[Hotkeys]WindowsPad.ini文件的部分来添加类似于Aero-snap的箭头键功能:

#+左= WindowScreenMove,下一步
#+右= WindowScreenMove,上一个
#左= WPM,-1、0、0.5、1.0
#右= WPM,+ 1、0、0.5、1.0
#Up = MaximizeToggle
#Down =恢复

不幸的是,您确实无法捕捉到屏幕的50%,然后又恢复到原始位置(因为它实际上是在调整窗口的大小,而不是使用航空捕捉)。但是到目前为止,这是我发现的唯一缺点。


WindowsPad的角落和底部快照功能演示:

WindowsPad演示


2

您可以尝试我的Windows工具集合。以下是移动窗口的热键:

Win+Array: Move the active window based on other visible windows. This allows for fast window alignment.
Shift+Win+Array: Move the left-up corner of the active window.
Alt+Win+Array: Move the right-bottom corner of the active window.
Ctrl+Win+Array: Dock the active window
Alt+F9: Minimize the active window
Alt+F10: Toggle maximize the active window

2015年6月

由于Google代码已停用,因此我将代码移至github。Wiki页面包含一些帮助信息:rwin wiki


2

以下注册表编辑完全实现了所要求的内容

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Control Panel\Desktop]
"DockMoving"="0"
"SnapSizing"="0"

(您可以将其另存为.reg文件并运行。需要重新启动或重新登录。)

实际上,这是将要设置的两个设置,它们执行@gitbox的答案中的代码。

在Windows 7-10中运行。


By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.