Skrót klawiaturowy do przenoszenia okna na inny ekran

20

Podczas pracy z dwoma (lub więcej ekranami) powszechnym problemem jest to, że uruchomione aplikacje pojawiają się na „złym” ekranie. Szczególnie denerwuje mnie to podczas uruchamiania edytora tekstu z wiersza poleceń, ponieważ muszę opuścić główny wiersz prawą ręką, aby przeciągnąć okno do „prawego” ekranu, zanim będę mógł kontynuować pisanie.

Czy można zdefiniować skrót klawiaturowy, który przenosi bieżącą aplikację na inny / następny ekran?

Edycja : używam systemu Windows XP, ale dobrze wiedzieć, że ta funkcja już istnieje w systemie Windows 7.


Edycja2 : Poszedłem do skryptu autohotkey . Ta adaptacja działa dla mnie:

#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

Musiałem skorzystać z instrukcji OutputDebug i dbgview, aby znaleźć odpowiednią wartość progową 1270dla ruchu w lewo lub w prawo. Dokładny próg jest szczególnie ważny przy przesuwaniu zmaksymalizowanych okien w lewo.

Wcoenen
źródło

Odpowiedzi:

4

Autohotkey! Spowoduje to przejście między monitorami (dwa monitory 1680x1050, ustawienie wartości po, Loop,aby była rozdzielczością ekranu każdego monitora / 10, jeśli jesteś inny) na winkey (#) i q. Kontrola to ^, alt to!, Shift to +, a litery to litery. Możesz także użyć kombinacji modyfikatorów.

#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
Phoshi
źródło
1
To obiecujące, ale pętla jest naprawdę powolna. Okno pełzło po moim pulpicie w ślimaczym tempie :-)
wcoenen,
Skrypt przesuwa także okno pod wskaźnikiem myszy, zamiast aktualnie aktywnego.
wcoenen
Ups! Mam go na myszy 4 i podwójnym kliknięciu, więc pod myszą jest dla mnie lepiej, a indeksowanie polega na tym, że XP był powolny przy przerysowywaniu okien. Jest dobrze w systemie Vista i nowszym. Chwilkę cierpliwości :)
Phoshi
Właśnie, zredagowałem tam skrypt, spróbuj tego :)
Phoshi
58

Jakiej wersji systemu Windows używasz? Windows 7 ma wbudowaną obsługę właśnie tego.

Win+ Shift+ left: Przesuń zogniskowane okno o jeden monitor w lewo

Win+ Shift+ right: Przesuń zogniskowane okno o jeden monitor w prawo

EDYCJA : W przypadku XP możesz wypróbować UltraMon . Między innymi pozwoli ci zdefiniować skróty klawiszowe dla „Przenieś okno do następnego monitora” i „Przenieś okno do poprzedniego monitora”.

BenA
źródło
1
Czuję się jak nowicjusz, ponieważ nie wiem, że +1
Ivo Flipse
Nie na temat, ale jak stworzyłeś te „przyciski”?
sYnfo
2
@sYnfo zawiń „przycisk” w tagu <kbd> </kbd>
BenA
+1, dzięki za to. Wcześniej używałem Ultramonu, nie potrzebuję już tego przy tym.
Pauk
2
TO powinno być wybrane jako odpowiedź. Cieszę się, że to znalazłem.
Pobłogosław Yahu
3

w innych wersjach systemu Windows możesz kliknąć prawym przyciskiem myszy pasek zadań, wybrać „przenieś”, a następnie użyć klawiszy strzałek, aby przenieść okno do odpowiedniego okna ... Wspominam o tym tylko dlatego, że co jakiś czas przypadkowo zostawiam okno na niewłaściwym monitorze, a następnie, gdy korzystam z laptopa w domu, nie widzę okna, ponieważ jest wyłączone. Zajęło mi to trochę czasu, aby to rozgryźć!


źródło
1
Chociaż pod Windows7 nie można przejść z menu paska zadań, nadal można przenosić okna za pomocą klawiszy skrótu: Ctrl + spacja, a następnie M, klawisze strzałek, w końcu Enter. en.wikipedia.org/wiki/…
Roland Pihlakas
Korekta: w systemie Windows 7 możesz przejść z paska zadań - UżyjShift + Right Click
Amit Naidu
1

Jeśli nie masz systemu Windows 7, możesz wypróbować DisplayFusion . Darmowa wersja pozwala skonfigurować klawisze skrótów, aby przenosić okna na następny monitor i kilka innych dodatków.

Charles Savoie
źródło