可以在Windows 7中“捕捉”顶部/底部,而不仅仅是“捕捉”顶部/底部吗?


125

在Windows 7中,我知道您可以Windows+ Left在屏幕的左半部分放置一个窗口。是否有可以同时使用顶部和底部的功能?


@RockPaperLizard您还必须记住Windows 7确实很旧,并且是迄今为止唯一具有本机快照功能的OS。例如,我必须找到第三方“扩展”类型脚本才能在Mac上执行此操作。此外,Windows 10的每个方向(包括角落)都具有捕捉功能!换句话说,我认为Windows团队确实在UX方面进行了尝试。UI有时是一项性格测试,但UX是Windows历来擅长的方面。
Joseph Hansen

@Joseph我实际上同意MS在UX领域取得了许多成功。他们甚至愿意与Microsoft Bob一起探索新领域,尽管在商业上并不成功。不幸的是,它们的成功受到许多重大失败的损害,最著名的是Windows 8。我不知道那个项目的失败是他们的用户体验团队还是管理层拒绝听他们的话。
RockPaperLizard

Answers:


73

否。唯一可用的快照选项是:

  • 左半按(Windows+ left
  • 右半按(Windows+ right
  • 全屏高度捕捉(Windows+ shift+ up
  • 最大化捕捉(Windows+ up
  • “取消快照”(Windows+ down
  • 捕捉到下一个监视器/显示(Windows+ shift+(leftright))

编辑:您可能喜欢的其他很棒的组合:

  • 最小化所有(Windows+ m
  • 最小化所有活动窗口(Windows+ Home
  • Aero窥视(查看桌面,所有Windows变为透明)(Windows+ space

整洁,我试图弄清楚如何保持垂直位置不变,但允许水平移动而无需使用左右屏幕捕捉,也不必重新调整窗口宽度,而全屏高度捕捉正是我想要的。
JAB

4
哦,刚发现双击标题栏的顶部边缘(即,当显示垂直双箭头时)也可以使屏幕高度对齐。
JAB

7
在Windows 10中,现在有另一个选项:在向左或向右对齐后,您可以按updown(例如,以对齐到左上角)。这不是OP想要的,但可能会对其他人有所帮助。
安德烈

没有“全屏宽度捕捉?” -_-
Shayan

对于下降投票者来说,这是Windows 7的正确答案。Windows 10具有新的快照选项...
Joseph Hansen

57

我使用以下步骤来完成此任务:

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

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


1
这真的很有用。我从Win 98开始就知道这一点,但是我从未在Win 7中实际使用过,因为在Win XP和以前的版本中,您可以选择任务栏按钮来选择要堆叠的窗口,但在Windows 7中不再起作用,所以当我选择该选项将在屏幕上堆叠所有窗口。博客technet:您是否知道:显示堆叠,层叠或并排的窗口
phuclv

这很有用,但是它将在所有监视器中堆叠所有窗口。
狮子座

这同样适用于Windows 10。
snickers10m

@Leo-以及所有台式机。有趣的:)
J布赖恩·普莱斯

23

我写了一些AutoHotKey脚本来捕捉Windows的顶部和底部,因为我对此也感到沮丧。您可以从我的网站下载它:http : //www.pixelchef.net/how-snap-windows-horizo​​ntally-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

它可以工作,但也可以在Windows 8.1中打开“开始”屏幕。如何解决这个问题?
加布里埃尔·豪克洛格

2
这正是我希望找到的。谢谢!我注意到该命令不会更改窗口的宽度。有什么方法可以在上/下捕捉时自动进入全屏宽度?
Alex P. Miller

1
在Windows 10上,这对我不起作用。我有3个监视器,其中2个处于垂直模式。您是在明确地谈论两个工作区域,不确定是否是这个原因。另外,您还应该提及对于不了解AHK语法的人,您应该在此答案中按哪些键组合
JoakimSöderberg'April 6'16

1
它仅在部分装有一台水平和一台垂直显示器的Windows 7上工作。完美在水平显示器上,但在垂直显示器上似乎要占据水平显示器的高度。
hardmooth

21

WindowSpace提供了此功能。要执行您所要求的:

  • 转到中的“移动和调整大小”标签 Settings
  • 对于“顶部边缘:”,选择“移至顶部”
  • 对于“底部边缘:”,选择“移至底部”

屏幕截图:

屏幕截图


9
在某个时候需要25美元的许可证密钥吗?
ruffin

2
我更喜欢AquaSnap(免费或多显示器9美元的价格):youtube.com/watch? v=bOVOEebpiWc 但是由于Windows 10不再需要了,因为现在最重要的功能是操作系统的一部分。
mgutt

1
AquaSnap现在售价18美元(如果您使用多台显示器),它可以完成Win10所没有的许多功能,例如顶部/底部捕捉和平铺。很酷。
isherwood

9

我目前没有Windows 7机器,但是自Windows 95(甚至之前)以来,就一直可以水平平铺窗口。最小化您要查看的两个窗口的顶部和底部,右键单击任务栏,然后选择“水平平铺窗口”。它将调整每个窗口的大小,以占据垂直屏幕区域的一半。这对单个窗口没有用,正如另一个答案所述,它没有键盘快捷键,但有时我觉得很方便。

更正:在Windows 7上,这称为“显示堆叠的窗口”


8

与northben相似,我也写了一个AutoHotKey脚本,尽管有所不同,所以我认为它应该得到自己的回答。该脚本应可用于任何数量的监视器或监视器方向。

该命令被绑定到Windows+ Ctrl+ UpDown代替Shift,以便不与现有的干扰Windows+ Shift+ Up

这与全屏高度捕捉(Windows+ Shift+ Up)相似,因为窗口将保持其水平位置和宽度。通过取消注释该行,可以很容易地将其更改为类似于左半部或右半部捕捉(Windows+ LeftRight; WinMaximize, A。如果要保留默认行为,但有时要使用“半捕捉”行为,只需在捕捉前最大化窗口。

适用于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)

1
我希望这会成功。我越来越The following variable name contains an illegal character: "params*"。现在我正在使用@ northben的剧本

感谢您的脚本。超级有用。我发现直到删除UpDownSnap函数名称和括号之间的空格后,它才会加载。
杰森·杜菲尔

也许那也是上面的问题。有趣的是,我自己的脚本没有空格。我不确定它是怎么到达那里的。我已将其删除,谢谢。
杰森·克莱门特

在Windows 8.1中效果很好:-)
Gabriel Hautclocq

感谢@JasonClement为您提供解决方案。我修复了您解决方案中的错误,并发布了另一个答案。
Zee

7

我曾经使用过的最好的程序,可以完成以上任务,就是WinSplit Revolution:http://winsplit-revolution.com/

我强烈推荐它,因为它使用起来非常简单,甚至可以在多台显示器上很好地工作。

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

此应用程序是免费软件,并在知识共享署名-非商业性-无衍生作品3.0下发布。

编辑:

似乎WinSplit不再可用,该网站已由Digital Creations AS接管,该公司拥有自己的此类软件版本,并且不再免费


该软件仍然可以试图从外部仍然是1809年更新在Windows 10能创造奇迹 en.softonic.com/download/winsplit-revolution/windows
JoeB

5

随意放置您的窗口->右键单击任务栏->“显示堆叠的窗口”->获利!


4

正如Rain 在这里建议的那样,PowerResizer运作良好。不是非常可定制的-您无法更改键盘快捷键,但至少是开源的。如JoeB所述,您可以在拖动窗口时按以下按钮:W向上移动,Z向下移动。A是向左移动,S是向右移动。或者只是将窗口拖动到边缘。拖动时同时按1,2,3和4,将四分之一捕捉到一个角。我对此感到满意,请尝试一下。


我刚试过WindowSpace;如果您不介意支付25美元,这是一个更好的解决方案。
leetNightshade 2014年

1
有文档!程序文件安装文件夹中的readme.txt。更不用说它完全符合我的要求,即垂直半按。1/4个快照是额外的奖励!
吓人2014年

3

如果您有AMD显卡,则可以使用“ Hydravision”。

(1)打开Catalyst Control Center(2)在“桌面和显示”下单击“更多...”(3)在“ Hydravision”下单击“ HydraGrid”(4)选中“启用HydraGrid”(5)单击“编辑HydraGrid” ”,然后将网格线放置在您想要的位置,例如,将人像监视器中途放在中间(6)

现在,当您使用Windows时,可以右键单击标题栏并选择“附加到网格”,然后将其从一个地方拖到另一个位置,它将捕捉到网格。

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


1
我错误地安装了Catalyst Control Center来试用Hydravision。该程序是猪,我正在寻找另一种解决方案。
dana 2013年

2

看看AquaSnap。您可以按预期的方式拖动鼠标,使用Ctrl + Mouse可以同时调整两个平铺窗口的大小,以及其他许多功能。

查看很棒的对接功能

您还可以使用各种热键。除了将Win + Up和Win + Down的Dock更改为顶部/底部之外,该程序还将覆盖您已经习惯使用的一些Windows默认设置。

热键示例

WindowSpace可以工作,但效果却不尽如人意,当您单击apply时可以挂断一段时间。相比之下,Aquasnap Pro的免费/试用版是非常流畅的体验。


1

Windows提供了许多选项,包括“堆栈”,“并排”和“级联”。这些可以通过右键单击任务栏上的空白区域(通常在屏幕底部)并选择来完成。是的,这不是键盘快捷键,但是相当接近。

不要相信我,请直接从马口中拿出来,微软在这里

网站上还有许多其他有趣的花絮-很多您知道,有些可能是新的。希望这可以帮助。


1

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

  • 需要使用鼠标
  • 它仅适用于两个窗口。

配方是:

  1. 用通常的方法并排捕捉窗口。
  2. 按下Win+Down以使其中一个窗口占据屏幕的四分之一
  3. 选择另一个窗口,然后按Win+Up使另一个窗口占据屏幕的相反四分之一
  4. 使用鼠标抓住窗口的边缘并将其调整为屏幕边缘的大小,从而在不更改其高度的情况下最大化每个窗口的宽度。

不错的提示,但每次都需要做很多工作。
11101101b

1

修复了Jason Clement解决方案中的错误。当窗口垂直捕捉时,以前它也不会占用显示器的宽度。它只会保持当前窗口宽度,但会垂直捕捉到1/2监视器。使用此修复程序,它可以将显示器上下垂直高度固定为50%,显示器水平宽度固定为100%。

此外,对于那些可能不了解AHK的人...

  1. 下载AutoHotKey
  2. 在记事本中创建一个文本文件。将代码粘贴到其中。使用正确的AutoHotKey扩展名保存它,例如“ VerticalSnap.ahk”
  3. 右键单击资源管理器中的文件,选择“编译脚本”
  4. 编译应在该目录中创建一个“ VerticalSnap.exe”文件。
  5. 打开run.exe,输入“ shell:startup”,然后按Enter。
  6. 新的资源管理器窗口应打开到“启动”文件夹。
  7. 将.exe文件复制/粘贴到该“启动”文件夹中。
  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)

0

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

  • 右键单击位于通知区域的DisplayFusion图标,然后转到Monitor Configuration
  • 选择您要配置的监视器。
  • 将一个添加vertical split到监视器。(您可以尝试使用它,并进一步拆分显示器。)

启用此功能后,您应该可以使用Windows+ Arrow键浏览窗口,以最大化显示在显示器的新垂直分割区域中。我的30英寸显示器进入后,我将以纵向模式运行两台1920x1200显示器,并且必须垂直捕捉窗口。


0

我需要使用多监视器设置重复打开Windows 10中顶部和底部的两个浏览器窗口,并且已经打开了许多其他窗口。可以手动完成,但需要更好的解决方案。

我发现Chrome扩展程序“制表符调整大小-分屏布局”扩展程序对我来说超级简单。

只需打开一个新的Chrome窗口,点击“标签调整大小”扩展程序图标,然后选择2x1选项即可。很好,现在很容易。


1
提出这个问题的人似乎希望找到一种适用于所有程序的解决方案,而不仅仅是Chrome。你有什么做的吗?
本N

0

如果使用Dell显示器,则可以安装Dell Display Manager,它具有将显示器分成网格的选项。

然后,您可以在按住Shift键的同时将窗口拖动到单元格中。

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.