2011-05-18 17:10:38 +0000 2011-05-18 17:10:38 +0000
132
132

能否在Windows 7中 "抓取 "顶部/底部,而不是只抓左/右?

在Windows7中,我知道可以做到Windows+左,把窗口放在屏幕的左半部分。有没有一种功能可以做到上下左右?

答案 (19)

78
78
78
2011-05-18 17:14:29 +0000

没有。唯一可用的快照选项是

  • 左半边快照 (Windows + 左)
  • 右半边快照 (Windows + 右)
  • 全屏高度快照 (Windows + shift + 上)
  • 最大化快照 (Windows + 上)
  • “取消快照” (Windows + 下)
  • 快照到下一个显示器/显示屏 (Windows + shift + (左或右))

编辑:其他你可能喜欢的超棒组合。

  • 全部最小化(Windows + m)
  • 除活动窗口外全部最小化(Windows + Home)
  • Aero peek (查看桌面,所有窗口变为透明)(Windows + space)
60
60
60
2012-06-21 18:28:51 +0000

我使用以下步骤来完成这个任务。

1.Windows + D(将所有窗口最小化) 2.然后用鼠标将我想要堆叠的窗口放在每个显示器上的一般位置(不要去调整它们的大小) 3.然后在任务栏上点击右键,并从上下文菜单中选择 “显示堆叠的窗口",然后还原任何其他我想要的窗口

注意:你必须最小化任何你不想要堆叠的窗口。这就是步骤1的目的。

22
22
22
2012-05-15 03:58:29 +0000

我写了一个小的AutoHotKey脚本来捕捉窗口的顶部和底部,因为我也对这个问题感到沮丧。你可以从我的网站上下载它。 http://www.pixelchef.net/how-snap-windows-horizontally-windows-7

; Move window up (Windows + Shift + UP ... NOTE must maximize window first)
+#Up::
  WinGetPos,X,Y,W,H,A,,,
  WinMaximize
  WinGetPos,TX,TY,TW,TH,ahk_class Shell_TrayWnd,,,

  ; if this is greater than 1, we're on the secondary (right) monitor. This
  ; means the center of the active window is a positive X coordinate
  if ( X + W/2 > 0 ) {
  SysGet, MonitorWorkArea, MonitorWorkArea, 1
  WinMove,A,,X,0 , , (MonitorWorkAreaBottom/2)
  }
  else {
  SysGet, MonitorWorkArea, MonitorWorkArea, 2
  WinMove,A,,X,0 , , (MonitorWorkAreaBottom/2)
  }
return

; Move window down (Windows + Shift + DOWN ... NOTE must maximize window first)
+#Down::
  WinGetPos,X,Y,W,H,A,,,
  WinMaximize
  WinGetPos,TX,TY,TW,TH,ahk_class Shell_TrayWnd,,,

  ; if this is greater than 1, we're on the secondary (right) monitor. This
  ; means the center of the active window is a positive X coordinate
  if ( X + W/2 > 0 ) {
  SysGet, MonitorWorkArea, MonitorWorkArea, 1
  WinMove,A,,X,MonitorWorkAreaBottom/2 , , (MonitorWorkAreaBottom/2)
  }
  else {
  SysGet, MonitorWorkArea, MonitorWorkArea, 2
  WinMove,A,,X,MonitorWorkAreaBottom/2 , , (MonitorWorkAreaBottom/2)
  }
return
``` 。
21
21
21
2011-05-19 09:20:55 +0000

WindowSpace 提供了这个功能。要做到你所要求的。

-进入Settings 的 “移动和调整大小 "选项卡 -对于 "顶部边缘:",选择 "移动到顶部 ” -对于 “底部边缘:",选择 "移动到底部”

截图:

9
9
9
2014-03-21 21:32:34 +0000

与northben类似,我也写了一个AutoHotKey脚本,尽管有点不同,所以我认为它应该有自己的答案。这个脚本应该适用于任何数量的显示器或显示器方向。

命令被绑定到Windows + Ctrl + Up和Down,而不是Shift,这样就不会干扰现有的Windows + Shift + Up。

这工作原理类似于全屏高度快照(Windows + Shift + Up),窗口保留其水平位置和宽度。通过取消注释; WinMaximize, A行,可以很容易地将其改为类似于左半或右半快照(Windows +左或右)的工作方式。如果你想保持默认的行为,但有时也会使用半抓取行为,只需在抓取前最大化窗口即可。

适用于Windows 7 64位和AutoHotKey v1.1.14.03。

;-------------------------------------------------------------------;
; Returns the maximum or minimum value for any number of inputs
; i.e. Max(5,4,7,10) will return 10
;-------------------------------------------------------------------;
Min(params*)
{
  r := params[1]
  for index, param in params
    if (param < r)
      r := param
  return r
}
Max(params*)
{
  r := params[1]
  for index, param in params
    if (param > r)
      r := param
  return r
}

;-------------------------------------------------------------------;
; WindowsKey+Ctrl+Up / WindowsKey+Ctrl+Down
; Resizes window to half the screen height and moves it to the top
; or bottom of whichever screen has the largest overlap.
; By default, the window retains its horizontal (x) position and
; width. To change this, uncomment the WinMaximize line.
;-------------------------------------------------------------------;
UpDownSnap(Direction)
{
  ; WinMaximize, A
  WinGetPos, x, y, w, h, a, , ,
  SysGet , Count, MonitorCount
  refArea := 0
  Loop, %count%
  {
    SysGet, m, MonitorWorkArea, %A_Index%
    xo := Max(0, Min(x + w, mRight) - Max(x, mLeft))
    yo := Max(0, Min(y + h, mBottom) - Max(y, mTop))
    area := xo * yo
    if (area > refArea)
    {
      monTop := mTop
      monBottom := mBottom
      refArea := area
    }
  }

  ; If the refArea is still equal to 0, the window does
  ; not overlap with any monitors. Wat?
  if (refArea > 0)
  {
    if (direction = 1)
      newY := monTop
    Else
      newY := (monBottom - monTop) / 2 + monTop
    WinMove , a, , x, newY, w, (monBottom - monTop) / 2
  }
}
^#Up::UpDownSnap(1)
^#Down::UpDownSnap(0)
9
9
9
2011-05-18 17:24:45 +0000

目前我面前没有一台windows 7的机器,但自从Windows 95(甚至之前可能)以来,一直有水平平铺窗口的选项。最小化一切,但两个窗口,你要查看顶部和底部,右键任务栏,并选择横向平铺窗口。它会将每个窗口的大小调整到占据垂直屏幕面积的一半。这对单个窗口没有用,正如另一个答案所说,没有键盘快捷键,但我发现它有时很方便。

更正:在Windows 7上,这叫做 “显示窗口堆叠”

7
7
7
2012-06-21 19:09:15 +0000

我曾经使用过的最好的程序,完成这+更多的是WinSplit Revolution。http://winsplit-revolution.com/

我强烈推荐它,因为它是非常简单的 使用,它甚至可以很好地与多个显示器。

演示视频。 http://winsplit-revolution.com/screenshots/videos-demos

这个应用程序是免费的,并根据知识共享署名-非商业-无衍生作品3.0发布。

编辑:

看来WinSplit已经不可用了,网站已经被Digital Creations AS接管,他们有自己的这种软件版本,并且是不再免费

5
5
5
2014-06-25 14:02:11 +0000

将你的窗口按照你的意愿放置 –> 右键点击任务栏 –> “显示窗口堆叠” –> 获利!

4
4
4
2014-06-19 20:37:55 +0000

正如Rain所建议的那样这里PowerResizer效果不错。虽然不能很好地自定义–你不能改变键盘快捷键,但至少是开源的。正如JoeB所言,你可以在拖动窗口时按这些键。W表示向上移动,Z表示向下移动。A是向左移动,S是向右移动。或者直接将窗口拖到边缘。在拖动的时候按1、2、3、4会对一个角进行四分之一的扣动。我很满意,试试吧。

3
3
3
2017-12-21 20:37:21 +0000

修正了 Jason Clement 的解决方案中的一个错误。当窗口垂直捕捉时,以前它不会占用显示器的宽度。它只是停留在当前窗口的宽度上,但会垂直地捕捉到1/2个显示器的宽度。修正后,它的垂直高度为上下50%,水平宽度为100%。

另外,对于那些可能不知道AHK的人来说…

1.下载AutoHotKey 2.在记事本中创建一个文本文件。在记事本中创建一个文本文件。将代码粘贴到里面。用AutoHotKey的正确扩展名保存它,例如 “VerticalSnap.ahk” 3. 在资源管理器中右击文件,选择 “编译脚本 ” 4. 编译应该在该目录下创建一个 “VerticalSnap.exe "文件。 5. 打开run.exe,输入 "shell:startup "并按下Enter键。 6. 一个新的资源管理器窗口应该会打开到Startup文件夹。 7. 复制/粘贴.exe文件到Startup文件夹。 8. 在下次启动时,这个脚本应该会运行。你可以使用CRTL+WINDOWS+UPARROW或+DOWNARROW来抓取显示器下半部分的顶部。请注意,窗口必须不是最大化的,这样才会有效。

希望能帮到你,谢谢Jason!

;-------------------------------------------------------------------;
; Returns the maximum or minimum value for any number of inputs
; i.e. Max(5,4,7,10) will return 10
;-------------------------------------------------------------------;
Min(params*)
{
  r := params[1]
  for index, param in params
    if (param < r)
      r := param
  return r
}
Max(params*)
{
  r := params[1]
  for index, param in params
    if (param > r)
      r := param
  return r
}

;-------------------------------------------------------------------;
; WindowsKey+Ctrl+Up / WindowsKey+Ctrl+Down
; Resizes window to half the screen height and moves it to the top
; or bottom of whichever screen has the largest overlap.
; By default, the window retains its horizontal (x) position and
; width. To change this, uncomment the WinMaximize line.
;-------------------------------------------------------------------;
UpDownSnap(Direction)
{
  ; WinMaximize, A
  WinGetPos, x, y, w, h, a, , ,
  SysGet , Count, MonitorCount
  refArea := 0
  Loop, %count%
  {
    SysGet, m, MonitorWorkArea, %A_Index%
    xo := Max(0, Min(x + w, mRight) - Max(x, mLeft))
    yo := Max(0, Min(y + h, mBottom) - Max(y, mTop))
    area := xo * yo
    if (area > refArea)
    {
      monTop := mTop
      monBottom := mBottom
      monLeft := mLeft
      monRight := mRight
      refArea := area
    }
  }

  ; If the refArea is still equal to 0, the window does
  ; not overlap with any monitors. Wat?
  if (refArea > 0)
  {
    if (direction = 1)
      newY := monTop
    Else
      newY := (monBottom - monTop) / 2 + monTop
    WinMove , a, , monLeft, newY, (monRight - monLeft), (monBottom - monTop) / 2
  }
}
^#Up::UpDownSnap(1)
^#Down::UpDownSnap(0)
3
3
3
2012-05-31 03:40:46 +0000

如果你有AMD显卡,可以使用 “Hydravision"。

(1)打开Catalyst控制中心 (2)在 "桌面和显示器 "下点击 "更多…” (3)在 “Hydravision "下点击 "HydraGrid” (4)勾选 “启用HydraGrid” (5)点击 “编辑HydraGrid",并将网格线放在你喜欢的地方,例如纵向显示器的一半 (6)应用

现在,当你在使用窗口时,你可以右击标题栏并选择 "附加到网格",然后将它从一个地方拖到另一个地方,它就会卡在网格上。

我使用这个设置在纵向模式下运行3x1 24 "显示器,这是我发现的最快速的方法,可以将窗口卡在每个显示器的上半部分和下半部分。

2
2
2
2017-03-28 21:48:49 +0000

看看【AquaSnap】(http://www.nurgo-software.com/products/aquasnap)。你可以像预期的那样用鼠标拖动,用Ctrl+Mouse同时调整两个平铺窗口的大小,此外还有其他一系列功能。

你还可以使用各种各样的热键。这个程序除了将停靠的Win+Up和Win+Down改为顶部/底部外,还可以覆盖一些你已经习惯使用的Windows默认值。

WindowSpace可以用,但没有那么好用,当你点击apply时,会挂掉一段时间。相比较而言,免费/试用版的Aquasnap Pro体验非常流畅。

1
1
1
2013-01-11 23:17:50 +0000

Windows提供了很多选项,包括STACKING、SIDE BY SIDE和CASCADING。这些都是通过右击任务栏上的空白区域(通常在屏幕底部)并选择来完成的。是的,这不是一个键盘快捷键,但它相当接近。

不要相信我,直接从马嘴里得到它,微软【这里】(http://windows.microsoft.com/en-US/windows7/Manage-multiple-windows)。

另外,网站上还有很多其他的小知识–很多是你知道的,有一些可能是新的。希望这对你有帮助。

1
1
1
2016-12-16 12:51:38 +0000

有一个第三方免费的方法来实现这个功能,但是AFAIK:

-需要使用一些鼠标 -只对两个窗口有效。

配方是。

1.用通常的方法把两个窗口并排扣住。 2. 按Win+Down使其中一个窗口占到屏幕的四分之一 3. 选择另一个窗口,按Win+Up使另一个窗口占据屏幕的另四分之一 4. 使用鼠标抓住窗口的边缘,并将其调整到屏幕边缘,从而使每个窗口的宽度最大化,而不改变其高度。

0
0
0
2020-02-26 09:44:15 +0000

这是特定品牌的,意味着使用鼠标而不是键盘,但如果你使用戴尔显示器,你可以使用戴尔显示管理器(免费)。

它可以让你按照自己的意愿分割每个显示器(2x1,2x2,4x2,什么都可以),然后你可以在任何片段中把窗口扣入到位。我已经用了好几年了,它真的很不错。

0
0
0
2020-01-08 11:10:08 +0000

Windowpad超级轻量级,处理得很好。

这是一个独立的exe,你开机后运行它,然后windows键+numpad最大化到各种四分之一和一半。或者如果你没有numpad,那就用capslock+WASD区域。 https://autohotkey.com/board/topic/19990-windowpad-window-moving-tool/

0
0
0
2018-07-16 06:57:25 +0000

如果你使用的是戴尔显示器,你可以安装戴尔显示管理器,它有将显示器划分成网格的选项。

然后你可以在按住Shift键的同时,将窗口拖入单元格。

0
0
0
2016-06-09 21:22:49 +0000

我需要在Windows 10的多显示器设置中反复分割顶部和底部的两个浏览器窗口,并且已经打开了很多其他窗口。可以手动操作,但想要一个更好的解决方案。

我发现Chrome扩展 “Tab Resize - Split Screen Layouts "扩展让我觉得超级简单。

只要打开一个新的Chrome窗口,点击Tab Resize扩展图标,选择2x1选项。现在很好,很简单。

0
0
0
2013-12-04 07:30:48 +0000

我发现一个有用的选项是使用DisplayFusion将你的显示器细分为虚拟的一半。你可以通过以下方式进行设置。

-右键点击通知区的DisplayFusion图标,进入Monitor Configuration。 - 选择你要配置的显示器。 - 给显示器添加一个vertical split

启用这个功能后,你应该可以使用Windows+方向键来导航你的窗口,使其最大化到显示器的新垂直分割区域。一旦我的30 “进来,我即将在纵向模式下运行我的两个1920x1200显示器,垂直捕捉窗口将是必要的。