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

评论

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

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

#1 楼

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


左半快照(Windows +左)
右半快照(Windows +右)
全屏高度快照( Windows + Shift +向上)
最大化的捕捉(Windows +向上)
“取消捕捉”(Windows +向下)
捕捉到下一个监视器/显示器(Windows + Shift +(向左或向右) ))

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


将所有窗口最小化(Windows + m)
将所有活动窗口最小化(Windows +主页)
Aero peek(查看桌面,所有Windows变为透明)(Windows +空格键)


评论


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

– JAB
2014年2月5日,12:42

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

– JAB
2014年2月5日在16:50

在Windows 10中,现在有另一个选项:向左或向右移动后,您可以向上或向下按,例如捕捉到左上角。不是OP想要的,但可能对其他人有帮助。

–安德烈
16年5月19日在14:11



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

–沙燕
19年2月14日在19:08

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

–约瑟夫·汉森(Joseph Hansen)
19年2月15日在21:07

#2 楼

我使用以下步骤来完成此操作:



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

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

评论


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

–phuclv
16年8月19日在3:42



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

–狮子座
16 Dec 12'在1:14

这同样适用于Windows 10。

–nickers10分钟
17-09-23在8:32

@Leo-以及所有台式机。有趣的:)

– J布赖恩·普莱斯(J Bryan Price)
18年7月19日在18:49

#3 楼

WindowSpace提供了此功能。要执行您想要的操作:


转到Settings中的“移动和调整大小”选项卡

对于“顶部边缘:”,选择“移动”移至顶部”
对于“底部边缘:”,选择“移至底部”




评论


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

–松饼
16年1月11日在14:09

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

– mgutt
16-12-12在7:36



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

–艾舍伍德
18年6月18日在21:24

#4 楼

我写了一些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中打开“开始”屏幕。如何解决这个问题?

–加布里埃尔·豪克洛克(Gabriel Hautclocq)
15年8月12日在12:38

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

– Alex P. Miller
16 Mar 11 '16 at 15:24

在Windows 10上,这对我不起作用。我有3个监视器,其中2个处于垂直模式。您在明确地谈论2个工作区域,不确定是否是这个原因。另外,您还应该提到对于不知道AHK语法的人,应该在此答案中按什么键组合

–约翰·索德伯格(JoakimSöderberg)
16年4月6日在8:10

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

– Hardmooth
16年8月5日在6:19

#5 楼

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

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

#6 楼

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

命令绑定到Windows + Ctrl +向上和向下,而不是Shift,以免干扰现有的Windows + Shift +向上。

这与全屏高度捕捉(Windows + Shift +向上)相似,因为窗口保持其水平位置和宽度。通过取消注释; 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)


评论


我希望这会成功。我得到以下变量名称包含非法字符:“ params *”。现在我正在使用@northben的脚本

–位
2015年2月14日在23:15



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

–杰森·杜费尔(Jason Dufair)
2015年6月10日15:04

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

–詹森·克莱门特(Jason Clement)
15年6月10日在18:01

在Windows 8.1中运作良好:-)

–加布里埃尔·豪克洛克(Gabriel Hautclocq)
15年8月12日在12:41

@JasonClement如果取消注释该行,它将最大化到整个监视器(就像一个普通的旧最大化)。我的解决方案只最大化宽度,保持50%的高度。

– Zee
17年12月29日在16:03

#7 楼

我曾经使用过的最好的程序,可以做到这一点,甚至更多,是WinSplit Revolution:http://winsplit-revolution.com/

我强烈推荐它,因为它使用起来非常简单而且它非常简单。甚至可以与多台显示器配合使用。

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

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

编辑:

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

评论


该软件仍然可以从softonic处获得,并且在Windows 10更新1809上仍然可以运行。(en.softonic.com/download/winsplit-revolution/windows)

–JoeB
18/12/18在1:52

我也可以推荐WinSplit Revolution。我从Windows 7开始使用它,现在在Windows 10下没有任何问题。

–瑟伦·阿尔布雷希特(Thorsten Albrecht)
19-10-28在18:09

#8 楼

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

#9 楼

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

此外,对于那些可能不知道AHK ...的人来说。


下载AutoHotKey

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


评论


您忘记更改脚本中的注释,但希望有人会批准我的编辑。很好的发现,这在Windows 10中可靠地工作。

–多米诺骨牌
20-2-18在23:50

如果遇到问题,请尝试将快捷方式更改为LCtrl + LWin + LAlt,以真正避免与现有快捷方式发生冲突。 <^ <#<!Up :: UpDownSnap(1)应该这样做。另外,您可以使用<^ <#<!Left :: Send#{Left}重新映射相同的组合以左右对齐

–多米诺骨牌
20-2-18在23:52



#10 楼

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

评论


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

–leetNightshade
2014年10月17日在1:09

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

–恐怖分子
2014年11月18日在16:23



#11 楼

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

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

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

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

评论


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

– dana
13年3月25日在22:33

#12 楼

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

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

WindowSpace可以工作,但效果不尽人意,并在您点击应用时可以挂断一会儿。相比之下,Aquasnap Pro的免费/试用版是非常流畅的体验。

#13 楼

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

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

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

#14 楼

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


它需要一些鼠标的使用。
它仅适用于两个窗口。

配方是:


以通常的方式并排捕获窗口。
Win+Down,使其中一个窗口占据屏幕的四分之一
选择另一个窗口,然后按Win+Up,使另一个窗口占据屏幕的相反四分之一
使用鼠标抓住窗口的边缘并将其调整为屏幕边缘的大小,从而最大程度地增加宽度每个窗口的高度而无需更改它们的高度。


评论


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

– 11101101b
18年7月20日在19:26

#15 楼

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


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

启用此功能后,您应该可以使用Windows +箭头键浏览窗口,以最大化显示为新的垂直拆分显示器区域。一旦30英寸进来,我将以纵向模式运行两台1920x1200显示器,这将是必不可少的。垂直捕捉窗口将是必需的。

#16 楼

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

我发现Chrome扩展程序“ Tab调整大小-分屏布局”扩展程序对我来说超级容易。

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

评论


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

– Ben N
16年6月10日,0:05

#17 楼

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

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

#18 楼

Windowpad非常轻巧,可以很好地处理这一问题。

这是一个独立的exe,在启动后运行它,然后Windows键+数字键盘会最大化到各个部分和一半。或者,如果您没有数字键盘,请使用Capslock + WASD区域。

https://autohotkey.com/board/topic/19990-windowpad-window-moving-tool/

#19 楼

这是特定于品牌的,意味着使用鼠标而不是键盘,但是如果使用Dell显示器,则可以使用Dell Display Manager(免费)。

它使您可以根据需要拆分每个显示器。 (2x1、2x2、4x2等),然后将窗口对齐到任意段中。我已经使用了几年了,真的很好。