用于将窗口移至另一个屏幕的键盘快捷键


20

当使用两个(或多个)屏幕时,一个常见的问题是启动的应用程序出现在“错误”屏幕上。从命令行启动文本编辑器时,我尤其感到烦恼,因为我必须用右手离开主行才能将窗口拖到“右”屏幕上,然后才能继续输入。

是否可以定义将当前应用程序移动到另一个/下一个屏幕的快捷键?

编辑:我正在使用Windows XP,但是很高兴知道Windows 7中已经存在该功能。


Edit2:我去了自动热键脚本。这种改编对我有用:

#q::
WinGetPos, winx, winy,,, A
WinGet, mm, MinMax, A
WinRestore, A
If (winx > 1270)
{
    newx := winx-1270
    OutputDebug, Moving left from %winx% to %newx%
}
else
{
    newx := winx+1270
    OutputDebug, Moving right from %winx% to %newx%
}

WinMove, A,, newx, winy

if mm=1
    WinMaximize, A
Return

我确实必须利用OutputDebug语句和dbgview来发现1270左右移动的正确阈值。当将最大化的窗口向左移动时,确切的阈值尤其重要。

Answers:


4

自动热键!这将Loop,在Winkey(#)和q 之间在监视器之间移动(两个1680x1050监视器,将值设置为每个监视器的屏幕分辨率/ 10(如果您不同)。控制为^,alt为!,shift为+,字母为字母。您也可以使用修饰符的组合。

#z:: ;Move the active window to the other monitor.
WinGetPos, winx, winy,,, A
WinGet, oldWin,ID,A
WinActivate, A
WinGet, mm, MinMax, A
WinRestore, A
If winx+5 >= 0 then
    mult=1
else
    mult=-1
WinMove,A,, winx-(1680*mult), winy
if mm=1
    WinMaximize, A
Return

1
这是有希望的,但是循环确实很慢。窗口以蜗牛

该脚本还将窗口移动到鼠标指针下方,而不是当前处于活动状态的窗口。
wcoenen

哎呀!我在鼠标4上双击它,因此在鼠标下对我来说更好,而爬行的原因是XP重绘窗口时速度很慢。在Vista和更高版本上都可以。请稍等:)
Phoshi

是的,在那里编辑了脚本,然后尝试:)
Phoshi

58

您正在使用哪个版本的Windows?Windows 7对此提供了本机支持。

Win+ Shift+ left:将聚焦窗口向左移动一台监视器

Win+ Shift+ right:将聚焦窗口向右移动一台监视器

编辑:对于XP,您可以尝试UltraMon。除其他功能外,它还允许您定义“将窗口移至下一个监视器”和“将窗口移至上一个监视器”的热键。


1
我觉得对于新手,不知道+1
伊沃Flipse

脱离主题,但是您是如何制作这些“按钮”的呢?
sYnfo

2
@sYnfo将“按钮”包装在<kbd> </ kbd>标记中
BenA,2009年

+1,谢谢。我以前使用过Ultramon,因此不再需要它。
Pauk)

2
这应该被选为答案。很高兴我找到了这个。
Bless Yahu 2012年

3

在其他版本的Windows中,您可以右键单击任务栏,选择“移动”,然后使用箭头键将窗口移至正确的窗口...我之所以仅提及这一点是因为我不时地留下一个窗口在错误的显示器上,然后当我在家中使用笔记本电脑时,由于窗口不在显示器上,所以我看不到窗口。花了我一段时间来解决这个问题!


1
尽管在Windows7下,您无法从任务栏菜单中移动,但仍可以使用快捷键来移动窗口:Ctrl + Space,然后按M,箭头键,最后按Enter。 en.wikipedia.org/wiki/…–
罗兰·皮拉卡斯

更正:在Windows 7中,您可以从任务栏移动-使用Shift + Right Click
Amit Naidu

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.