Abe*_*ler 143 windows-7 keyboard-shortcuts usability
在 Windows 7 中,我知道您可以执行Windows+Left在屏幕的左半部分放置一个窗口。有没有可以做顶部和底部的功能?
Joe*_*sen 87
不可以。唯一可用的捕捉选项是:
编辑:您可能喜欢的其他很棒的组合:
小智 65
我使用以下步骤来完成此操作:
注意:您必须最小化任何不想堆叠的窗口。这就是第 1 步的目的。
Rus*_*vis 24
WindowSpace提供了此功能。做你所要求的:
Settings截屏:

nor*_*ben 24
我写了一个 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
Run Code Online (Sandbox Code Playgroud)
rma*_*art 10
目前我面前没有 Windows 7 机器,但是自从 Windows 95(甚至可能更早)以来,就可以选择水平平铺窗口。最小化除要查看的顶部和底部的两个窗口之外的所有内容,右键单击任务栏,然后选择水平平铺 Windows。它将调整每个窗口的大小以占据垂直屏幕区域的一半。这对单个窗口没有用,正如另一个答案所述,它没有键盘快捷键,但有时我发现它很方便。
更正:在 Windows 7 上,这称为“显示窗口堆叠”
Jas*_*ent 10
与 northben 类似,我也写了一个 AutoHotKey 脚本,虽然有点不同,所以我认为它应该得到自己的答案。此脚本应适用于任意数量的监视器或监视器方向。
命令绑定到Windows+ Ctrl+Up而Down不是Shift为了不干扰现有的Windows+ Shift+ Up。
此工作原理类似于全屏幕高度卡扣(Windows+ Shift+Up在该窗口保持其水平位置和宽度)。通过取消注释该行,可以轻松地将其更改为类似于左半部或右半部捕捉(Windows+Left或Right); 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)
Run Code Online (Sandbox Code Playgroud)
我用过的最好的程序就是 WinSplit Revolution:http ://winsplit-revolution.com/
我强烈推荐它,因为它使用起来非常简单,甚至可以与多台显示器配合使用。
演示视频:http : //winsplit-revolution.com/screenshots/videos-demos
此应用程序是免费软件,并在知识共享署名-非商业性-禁止衍生作品 3.0 下发布。
编辑:
WinSplit 似乎不再可用,该网站已被 Digital Creations AS 接管,后者拥有自己的此类软件版本,不再免费
修复了 Jason Clement 解决方案中的一个错误。当窗口垂直对齐时,以前它也不会占用显示器的宽度。它只会保持当前的窗口宽度,但会垂直捕捉到 1/2 监视器。通过此修复,它会捕捉到显示器的 50% 垂直高度和 100% 水平宽度。
另外,对于那些可能不知道 AHK 的人......
希望有所帮助,并感谢杰森!
;-------------------------------------------------------------------;
; 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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
174037 次 |
| 最近记录: |